-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUsfmParserSink.cs
197 lines (174 loc) · 7.87 KB
/
UsfmParserSink.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
namespace MarkerCheck
{
/// <summary>
/// Class which receives parse events from a USFM parser.
/// Base class here ignores all events. Override necessary in subclasses.
/// </summary>
public class UsfmParserSink
{
/// <summary>
/// Got a marker of any kind
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void GotMarker(UsfmParserState state, string marker) { }
/// <summary>
/// Start of a book element
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
/// <param name="code">code e.g. GEN</param>
public virtual void StartBook(UsfmParserState state, string marker, string code) { }
/// <summary>
/// End of a book element, not the end of the entire book.
/// Book element contains the description as text
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void EndBook(UsfmParserState state, string marker) { }
/// <summary>
/// Chapter element
/// </summary>
/// <param name="state"></param>
/// <param name="number">chapter number</param>
/// <param name="marker"></param>
/// <param name="altNumber">alternate chapter number or null for none</param>
/// <param name="pubNumber">publishable chapter number or null for none</param>
public virtual void Chapter(UsfmParserState state, string number, string marker, string altNumber, string pubNumber) { }
/// <summary>
/// Verse element
/// </summary>
/// <param name="state"></param>
/// <param name="number">verse number</param>
/// <param name="marker"></param>
/// <param name="altNumber">alternate verse number or null for none</param>
/// <param name="pubNumber">publishable verse number or null for none</param>
public virtual void Verse(UsfmParserState state, string number, string marker, string altNumber, string pubNumber) { }
/// <summary>
/// Start of a paragraph
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
/// <param name="unknown">true if marker is an unknown marker</param>
public virtual void StartPara(UsfmParserState state, string marker, bool unknown) { }
/// <summary>
/// End of a paragraph
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void EndPara(UsfmParserState state, string marker) { }
/// <summary>
/// Start of a character style
/// </summary>
/// <param name="state"></param>
/// <param name="markerWithoutPlus">marker of the character style, with the plus prefix removed if present</param>
/// <param name="closed">true if character style is closed with a close marker</param>
/// <param name="unknown">true if marker is an unknown marker</param>
/// <param name="namedAttributes">extra named namedAttributes</param>
public virtual void StartChar(UsfmParserState state, string markerWithoutPlus, bool closed, bool unknown, NamedAttribute[] namedAttributes) { }
/// <summary>
/// End of a character style
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
/// <param name="namedAttributes"></param>
public virtual void EndChar(UsfmParserState state, string marker, NamedAttribute[] namedAttributes) { }
/// <summary>
/// Start of a note
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
/// <param name="caller"></param>
/// <param name="category">optional category for the note. Null if none</param>
/// <param name="closed">true if note is closed</param>
public virtual void StartNote(UsfmParserState state, string marker, string caller, string category, bool closed) { }
/// <summary>
/// End of a note
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void EndNote(UsfmParserState state, string marker) { }
/// <summary>
/// Start of a table
/// </summary>
/// <param name="state"></param>
public virtual void StartTable(UsfmParserState state) { }
/// <summary>
/// End of a table
/// </summary>
/// <param name="state"></param>
public virtual void EndTable(UsfmParserState state) { }
/// <summary>
/// Start of a row of a table
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void StartRow(UsfmParserState state, string marker) { }
/// <summary>
/// End of a row of a table
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void EndRow(UsfmParserState state, string marker) { }
/// <summary>
/// Start of a cell within a table row
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
/// <param name="align">"start", "center" or "end"</param>
public virtual void StartCell(UsfmParserState state, string marker, string align) { }
/// <summary>
/// End of a cell within a table row
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void EndCell(UsfmParserState state, string marker) { }
/// <summary>
/// Text element
/// </summary>
/// <param name="state"></param>
/// <param name="text"></param>
public virtual void Text(UsfmParserState state, string text) { }
/// <summary>
/// Unmatched end marker
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void Unmatched(UsfmParserState state, string marker) { }
/// <summary>
/// Automatically extracted ref to a Scripture location
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
/// <param name="display">String to be displayed</param>
/// <param name="target">target of ref. See USX documentation</param>
public virtual void Ref(UsfmParserState state, string marker, string display, string target) { }
/// <summary>
/// Start of a study Bible sidebar
/// </summary>
/// <param name="state"></param>
/// <param name="marker">"esb"</param>
/// <param name="category">optional category or null if none</param>
/// <param name="closed">true if sidebars closed by \esbe marker</param>
public virtual void StartSidebar(UsfmParserState state, string marker, string category, bool closed) { }
/// <summary>
/// End of a study Bible sidebar
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
public virtual void EndSidebar(UsfmParserState state, string marker) { }
/// <summary>
/// Optional break (// in usfm)
/// </summary>
/// <param name="state"></param>
public virtual void OptBreak(UsfmParserState state) { }
/// <summary>
/// Milestone start or end
/// </summary>
/// <param name="state"></param>
/// <param name="marker"></param>
/// <param name="startMilestone"></param>
/// <param name="namedAttributes"></param>
public virtual void Milestone(UsfmParserState state, string marker, bool startMilestone, NamedAttribute[] namedAttributes) { }
}
}