xrb 0.1 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. checksums.yaml +7 -0
  2. checksums.yaml.gz.sig +0 -0
  3. data/bake/xrb/entities.rb +60 -0
  4. data/bake/xrb/parsers.rb +69 -0
  5. data/ext/extconf.rb +21 -0
  6. data/ext/xrb/escape.c +152 -0
  7. data/ext/xrb/escape.h +15 -0
  8. data/ext/xrb/markup.c +1949 -0
  9. data/ext/xrb/markup.h +6 -0
  10. data/ext/xrb/markup.rl +226 -0
  11. data/ext/xrb/query.c +619 -0
  12. data/ext/xrb/query.h +6 -0
  13. data/ext/xrb/query.rl +82 -0
  14. data/ext/xrb/tag.c +204 -0
  15. data/ext/xrb/tag.h +21 -0
  16. data/ext/xrb/template.c +1114 -0
  17. data/ext/xrb/template.h +6 -0
  18. data/ext/xrb/template.rl +77 -0
  19. data/ext/xrb/xrb.c +72 -0
  20. data/ext/xrb/xrb.h +132 -0
  21. data/lib/xrb/buffer.rb +103 -0
  22. data/lib/xrb/builder.rb +222 -0
  23. data/lib/xrb/entities.rb +2137 -0
  24. data/lib/xrb/entities.xrb +30 -0
  25. data/lib/xrb/error.rb +81 -0
  26. data/lib/xrb/fallback/markup.rb +1658 -0
  27. data/lib/xrb/fallback/markup.rl +228 -0
  28. data/lib/xrb/fallback/query.rb +548 -0
  29. data/lib/xrb/fallback/query.rl +88 -0
  30. data/lib/xrb/fallback/template.rb +829 -0
  31. data/lib/xrb/fallback/template.rl +80 -0
  32. data/lib/xrb/markup.rb +56 -0
  33. data/lib/xrb/native.rb +15 -0
  34. data/lib/xrb/parse_delegate.rb +19 -0
  35. data/lib/xrb/parsers.rb +17 -0
  36. data/lib/xrb/query.rb +80 -0
  37. data/lib/xrb/reference.rb +108 -0
  38. data/lib/xrb/strings.rb +47 -0
  39. data/lib/xrb/tag.rb +115 -0
  40. data/lib/xrb/template.rb +164 -0
  41. data/lib/xrb/uri.rb +100 -0
  42. data/lib/xrb/version.rb +8 -0
  43. data/lib/xrb.rb +11 -0
  44. data/license.md +23 -0
  45. data/readme.md +29 -0
  46. data.tar.gz.sig +0 -0
  47. metadata +109 -58
  48. metadata.gz.sig +0 -0
  49. data/README +0 -60
  50. data/app/helpers/ui_helper.rb +0 -80
  51. data/app/models/xrb/element.rb +0 -9
  52. data/lib/xrb/engine.rb +0 -4
  53. data/rails/init.rb +0 -1
  54. data/xrb.gemspec +0 -12
@@ -0,0 +1,1658 @@
1
+
2
+ # line 1 "markup.rl"
3
+ # Released under the MIT License.
4
+ # Copyright, 2016-2024, by Samuel Williams.
5
+
6
+
7
+ # line 190 "markup.rl"
8
+
9
+
10
+ require_relative '../error'
11
+
12
+ module XRB
13
+ module Fallback
14
+
15
+ # line 16 "markup.rb"
16
+ class << self
17
+ attr_accessor :_markup_trans_keys
18
+ private :_markup_trans_keys, :_markup_trans_keys=
19
+ end
20
+ self._markup_trans_keys = [
21
+ 0, 0, 0, 127, 0, 127,
22
+ 0, 127, 0, 127, 62,
23
+ 62, 34, 39, 34, 60,
24
+ 34, 60, 9, 62, 34, 60,
25
+ 9, 62, 38, 60, 38,
26
+ 60, 38, 60, 45, 91,
27
+ 45, 45, 45, 45, 45, 45,
28
+ 45, 62, 79, 79, 67,
29
+ 67, 84, 84, 89, 89,
30
+ 80, 80, 69, 69, 62, 62,
31
+ 67, 67, 68, 68, 65,
32
+ 65, 84, 84, 65, 65,
33
+ 91, 91, 93, 93, 93, 93,
34
+ 62, 93, 0, 127, 0,
35
+ 127, 0, 127, 0, 127,
36
+ 63, 63, 62, 63, 35, 122,
37
+ 48, 120, 48, 59, 48,
38
+ 102, 48, 102, 48, 122,
39
+ 38, 60, 38, 60, 38, 60,
40
+ 38, 60, 38, 60, 38,
41
+ 60, 38, 60, 38, 60,
42
+ 38, 60, 0, 0, 0
43
+ ]
44
+
45
+ class << self
46
+ attr_accessor :_markup_key_spans
47
+ private :_markup_key_spans, :_markup_key_spans=
48
+ end
49
+ self._markup_key_spans = [
50
+ 0, 128, 128, 128, 128, 1, 6, 27,
51
+ 27, 54, 27, 54, 23, 23, 23, 47,
52
+ 1, 1, 1, 18, 1, 1, 1, 1,
53
+ 1, 1, 1, 1, 1, 1, 1, 1,
54
+ 1, 1, 1, 32, 128, 128, 128, 128,
55
+ 1, 2, 88, 73, 12, 55, 55, 75,
56
+ 23, 23, 23, 23, 23, 23, 23, 23,
57
+ 23, 0
58
+ ]
59
+
60
+ class << self
61
+ attr_accessor :_markup_index_offsets
62
+ private :_markup_index_offsets, :_markup_index_offsets=
63
+ end
64
+ self._markup_index_offsets = [
65
+ 0, 0, 129, 258, 387, 516, 518, 525,
66
+ 553, 581, 636, 664, 719, 743, 767, 791,
67
+ 839, 841, 843, 845, 864, 866, 868, 870,
68
+ 872, 874, 876, 878, 880, 882, 884, 886,
69
+ 888, 890, 892, 894, 927, 1056, 1185, 1314,
70
+ 1443, 1445, 1448, 1537, 1611, 1624, 1680, 1736,
71
+ 1812, 1836, 1860, 1884, 1908, 1932, 1956, 1980,
72
+ 2004, 2028
73
+ ]
74
+
75
+ class << self
76
+ attr_accessor :_markup_indicies
77
+ private :_markup_indicies, :_markup_indicies=
78
+ end
79
+ self._markup_indicies = [
80
+ 1, 1, 1, 1, 1, 1, 1, 1,
81
+ 1, 1, 1, 1, 1, 1, 1, 1,
82
+ 1, 1, 1, 1, 1, 1, 1, 1,
83
+ 1, 1, 1, 1, 1, 1, 1, 1,
84
+ 1, 2, 1, 1, 1, 1, 1, 1,
85
+ 1, 1, 1, 1, 1, 0, 0, 3,
86
+ 0, 0, 0, 0, 0, 0, 0, 0,
87
+ 0, 0, 0, 1, 1, 1, 1, 4,
88
+ 1, 0, 0, 0, 0, 0, 0, 0,
89
+ 0, 0, 0, 0, 0, 0, 0, 0,
90
+ 0, 0, 0, 0, 0, 0, 0, 0,
91
+ 0, 0, 0, 1, 1, 1, 1, 0,
92
+ 1, 0, 0, 0, 0, 0, 0, 0,
93
+ 0, 0, 0, 0, 0, 0, 0, 0,
94
+ 0, 0, 0, 0, 0, 0, 0, 0,
95
+ 0, 0, 0, 1, 1, 1, 1, 1,
96
+ 0, 1, 1, 1, 1, 1, 1, 1,
97
+ 1, 1, 6, 6, 6, 6, 6, 1,
98
+ 1, 1, 1, 1, 1, 1, 1, 1,
99
+ 1, 1, 1, 1, 1, 1, 1, 1,
100
+ 1, 6, 1, 1, 1, 1, 1, 1,
101
+ 1, 1, 1, 1, 1, 1, 5, 5,
102
+ 7, 5, 5, 5, 5, 5, 5, 5,
103
+ 5, 5, 5, 5, 1, 1, 1, 8,
104
+ 1, 1, 5, 5, 5, 5, 5, 5,
105
+ 5, 5, 5, 5, 5, 5, 5, 5,
106
+ 5, 5, 5, 5, 5, 5, 5, 5,
107
+ 5, 5, 5, 5, 1, 1, 1, 1,
108
+ 5, 1, 5, 5, 5, 5, 5, 5,
109
+ 5, 5, 5, 5, 5, 5, 5, 5,
110
+ 5, 5, 5, 5, 5, 5, 5, 5,
111
+ 5, 5, 5, 5, 1, 1, 1, 1,
112
+ 1, 5, 1, 1, 1, 1, 1, 1,
113
+ 1, 1, 1, 10, 10, 10, 10, 10,
114
+ 1, 1, 1, 1, 1, 1, 1, 1,
115
+ 1, 1, 1, 1, 1, 1, 1, 1,
116
+ 1, 1, 10, 1, 1, 1, 1, 1,
117
+ 1, 1, 1, 1, 1, 1, 1, 9,
118
+ 9, 11, 9, 9, 9, 9, 9, 9,
119
+ 9, 9, 9, 9, 9, 1, 1, 1,
120
+ 12, 1, 1, 9, 9, 9, 9, 9,
121
+ 9, 9, 9, 9, 9, 9, 9, 9,
122
+ 9, 9, 9, 9, 9, 9, 9, 9,
123
+ 9, 9, 9, 9, 9, 1, 1, 1,
124
+ 1, 9, 1, 9, 9, 9, 9, 9,
125
+ 9, 9, 9, 9, 9, 9, 9, 9,
126
+ 9, 9, 9, 9, 9, 9, 9, 9,
127
+ 9, 9, 9, 9, 9, 1, 1, 1,
128
+ 1, 1, 9, 1, 1, 1, 1, 1,
129
+ 1, 1, 1, 1, 14, 14, 14, 14,
130
+ 14, 1, 1, 1, 1, 1, 1, 1,
131
+ 1, 1, 1, 1, 1, 1, 1, 1,
132
+ 1, 1, 1, 14, 1, 1, 1, 1,
133
+ 1, 1, 1, 1, 1, 1, 1, 1,
134
+ 13, 13, 15, 13, 13, 13, 13, 13,
135
+ 13, 13, 13, 13, 13, 13, 1, 1,
136
+ 16, 17, 1, 1, 13, 13, 13, 13,
137
+ 13, 13, 13, 13, 13, 13, 13, 13,
138
+ 13, 13, 13, 13, 13, 13, 13, 13,
139
+ 13, 13, 13, 13, 13, 13, 1, 1,
140
+ 1, 1, 13, 1, 13, 13, 13, 13,
141
+ 13, 13, 13, 13, 13, 13, 13, 13,
142
+ 13, 13, 13, 13, 13, 13, 13, 13,
143
+ 13, 13, 13, 13, 13, 13, 1, 1,
144
+ 1, 1, 1, 13, 12, 1, 18, 1,
145
+ 1, 1, 1, 19, 1, 21, 20, 20,
146
+ 20, 22, 20, 20, 20, 20, 20, 20,
147
+ 20, 20, 20, 20, 20, 20, 20, 20,
148
+ 20, 20, 20, 20, 20, 20, 20, 1,
149
+ 20, 24, 23, 23, 23, 25, 23, 23,
150
+ 23, 23, 23, 23, 23, 23, 23, 23,
151
+ 23, 23, 23, 23, 23, 23, 23, 23,
152
+ 23, 23, 23, 1, 23, 26, 26, 26,
153
+ 26, 26, 1, 1, 1, 1, 1, 1,
154
+ 1, 1, 1, 1, 1, 1, 1, 1,
155
+ 1, 1, 1, 1, 26, 1, 1, 1,
156
+ 1, 1, 1, 1, 1, 1, 1, 1,
157
+ 1, 1, 1, 27, 1, 1, 1, 1,
158
+ 1, 1, 1, 1, 1, 1, 1, 1,
159
+ 1, 1, 28, 1, 30, 29, 29, 29,
160
+ 31, 29, 29, 29, 29, 29, 29, 29,
161
+ 29, 29, 29, 29, 29, 29, 29, 29,
162
+ 29, 29, 29, 29, 29, 29, 1, 29,
163
+ 32, 32, 32, 32, 32, 1, 1, 1,
164
+ 1, 1, 1, 1, 1, 1, 1, 1,
165
+ 1, 1, 1, 1, 1, 1, 1, 32,
166
+ 1, 1, 1, 1, 1, 1, 1, 1,
167
+ 1, 1, 1, 1, 1, 1, 33, 1,
168
+ 1, 1, 1, 1, 1, 1, 1, 1,
169
+ 1, 1, 1, 1, 1, 34, 1, 36,
170
+ 21, 35, 35, 35, 35, 35, 35, 35,
171
+ 35, 35, 35, 35, 35, 35, 35, 35,
172
+ 35, 35, 35, 35, 35, 1, 35, 38,
173
+ 24, 37, 37, 37, 37, 37, 37, 37,
174
+ 37, 37, 37, 37, 37, 37, 37, 37,
175
+ 37, 37, 37, 37, 37, 1, 37, 40,
176
+ 30, 39, 39, 39, 39, 39, 39, 39,
177
+ 39, 39, 39, 39, 39, 39, 39, 39,
178
+ 39, 39, 39, 39, 39, 1, 39, 41,
179
+ 42, 42, 42, 42, 42, 42, 42, 42,
180
+ 42, 42, 42, 42, 42, 42, 42, 42,
181
+ 42, 42, 42, 42, 42, 42, 43, 42,
182
+ 42, 42, 42, 42, 42, 42, 42, 42,
183
+ 42, 42, 42, 42, 42, 42, 42, 42,
184
+ 42, 42, 42, 42, 42, 44, 42, 45,
185
+ 42, 46, 45, 47, 45, 47, 45, 45,
186
+ 45, 45, 45, 45, 45, 45, 45, 45,
187
+ 45, 45, 45, 45, 45, 45, 48, 45,
188
+ 49, 42, 50, 42, 51, 42, 52, 42,
189
+ 53, 42, 54, 42, 55, 54, 56, 42,
190
+ 57, 42, 58, 42, 59, 42, 60, 42,
191
+ 61, 42, 62, 61, 63, 61, 64, 61,
192
+ 61, 61, 61, 61, 61, 61, 61, 61,
193
+ 61, 61, 61, 61, 61, 61, 61, 61,
194
+ 61, 61, 61, 61, 61, 61, 61, 61,
195
+ 61, 61, 61, 61, 61, 63, 61, 1,
196
+ 1, 1, 1, 1, 1, 1, 1, 1,
197
+ 1, 1, 1, 1, 1, 1, 1, 1,
198
+ 1, 1, 1, 1, 1, 1, 1, 1,
199
+ 1, 1, 1, 1, 1, 1, 1, 1,
200
+ 1, 1, 1, 1, 1, 1, 1, 1,
201
+ 1, 1, 1, 1, 65, 65, 1, 65,
202
+ 65, 65, 65, 65, 65, 65, 65, 65,
203
+ 65, 65, 1, 1, 1, 1, 1, 1,
204
+ 65, 65, 65, 65, 65, 65, 65, 65,
205
+ 65, 65, 65, 65, 65, 65, 65, 65,
206
+ 65, 65, 65, 65, 65, 65, 65, 65,
207
+ 65, 65, 1, 1, 1, 1, 65, 1,
208
+ 65, 65, 65, 65, 65, 65, 65, 65,
209
+ 65, 65, 65, 65, 65, 65, 65, 65,
210
+ 65, 65, 65, 65, 65, 65, 65, 65,
211
+ 65, 65, 1, 1, 1, 1, 1, 65,
212
+ 1, 1, 1, 1, 1, 1, 1, 1,
213
+ 1, 1, 1, 1, 1, 1, 1, 1,
214
+ 1, 1, 1, 1, 1, 1, 1, 1,
215
+ 1, 1, 1, 1, 1, 1, 1, 1,
216
+ 1, 1, 1, 1, 1, 1, 1, 1,
217
+ 1, 1, 1, 1, 1, 66, 66, 1,
218
+ 66, 66, 66, 66, 66, 66, 66, 66,
219
+ 66, 66, 66, 1, 1, 1, 67, 1,
220
+ 1, 66, 66, 66, 66, 66, 66, 66,
221
+ 66, 66, 66, 66, 66, 66, 66, 66,
222
+ 66, 66, 66, 66, 66, 66, 66, 66,
223
+ 66, 66, 66, 1, 1, 1, 1, 66,
224
+ 1, 66, 66, 66, 66, 66, 66, 66,
225
+ 66, 66, 66, 66, 66, 66, 66, 66,
226
+ 66, 66, 66, 66, 66, 66, 66, 66,
227
+ 66, 66, 66, 1, 1, 1, 1, 1,
228
+ 66, 69, 69, 69, 69, 69, 69, 69,
229
+ 69, 69, 69, 69, 69, 69, 69, 69,
230
+ 69, 69, 69, 69, 69, 69, 69, 69,
231
+ 69, 69, 69, 69, 69, 69, 69, 69,
232
+ 69, 69, 69, 69, 69, 69, 69, 69,
233
+ 69, 69, 69, 69, 69, 69, 68, 68,
234
+ 69, 68, 68, 68, 68, 68, 68, 68,
235
+ 68, 68, 68, 68, 69, 69, 69, 69,
236
+ 69, 69, 68, 68, 68, 68, 68, 68,
237
+ 68, 68, 68, 68, 68, 68, 68, 68,
238
+ 68, 68, 68, 68, 68, 68, 68, 68,
239
+ 68, 68, 68, 68, 69, 69, 69, 69,
240
+ 68, 69, 68, 68, 68, 68, 68, 68,
241
+ 68, 68, 68, 68, 68, 68, 68, 68,
242
+ 68, 68, 68, 68, 68, 68, 68, 68,
243
+ 68, 68, 68, 68, 69, 69, 69, 69,
244
+ 69, 68, 69, 69, 69, 69, 69, 69,
245
+ 69, 69, 69, 71, 71, 71, 71, 71,
246
+ 69, 69, 69, 69, 69, 69, 69, 69,
247
+ 69, 69, 69, 69, 69, 69, 69, 69,
248
+ 69, 69, 71, 69, 69, 69, 69, 69,
249
+ 69, 69, 69, 69, 69, 69, 69, 70,
250
+ 70, 69, 70, 70, 70, 70, 70, 70,
251
+ 70, 70, 70, 70, 70, 69, 69, 69,
252
+ 69, 69, 69, 70, 70, 70, 70, 70,
253
+ 70, 70, 70, 70, 70, 70, 70, 70,
254
+ 70, 70, 70, 70, 70, 70, 70, 70,
255
+ 70, 70, 70, 70, 70, 69, 69, 69,
256
+ 69, 70, 69, 70, 70, 70, 70, 70,
257
+ 70, 70, 70, 70, 70, 70, 70, 70,
258
+ 70, 70, 70, 70, 70, 70, 70, 70,
259
+ 70, 70, 70, 70, 70, 69, 69, 69,
260
+ 69, 69, 70, 73, 72, 74, 73, 72,
261
+ 76, 75, 75, 75, 75, 75, 75, 75,
262
+ 75, 75, 75, 75, 75, 77, 77, 77,
263
+ 77, 77, 77, 77, 77, 77, 77, 75,
264
+ 75, 75, 75, 75, 75, 75, 77, 77,
265
+ 77, 77, 77, 77, 77, 77, 77, 77,
266
+ 77, 77, 77, 77, 77, 77, 77, 77,
267
+ 77, 77, 77, 77, 77, 77, 77, 77,
268
+ 75, 75, 75, 75, 75, 75, 77, 77,
269
+ 77, 77, 77, 77, 77, 77, 77, 77,
270
+ 77, 77, 77, 77, 77, 77, 77, 77,
271
+ 77, 77, 77, 77, 77, 77, 77, 77,
272
+ 75, 78, 78, 78, 78, 78, 78, 78,
273
+ 78, 78, 78, 75, 75, 75, 75, 75,
274
+ 75, 75, 75, 75, 75, 75, 75, 75,
275
+ 75, 75, 75, 75, 75, 75, 75, 75,
276
+ 75, 75, 75, 75, 75, 75, 75, 75,
277
+ 75, 75, 75, 75, 75, 75, 75, 75,
278
+ 75, 75, 75, 75, 75, 75, 75, 75,
279
+ 75, 75, 75, 75, 75, 75, 75, 75,
280
+ 75, 75, 75, 75, 75, 75, 75, 75,
281
+ 75, 79, 75, 80, 80, 80, 80, 80,
282
+ 80, 80, 80, 80, 80, 75, 81, 75,
283
+ 82, 82, 82, 82, 82, 82, 82, 82,
284
+ 82, 82, 75, 75, 75, 75, 75, 75,
285
+ 75, 82, 82, 82, 82, 82, 82, 75,
286
+ 75, 75, 75, 75, 75, 75, 75, 75,
287
+ 75, 75, 75, 75, 75, 75, 75, 75,
288
+ 75, 75, 75, 75, 75, 75, 75, 75,
289
+ 75, 82, 82, 82, 82, 82, 82, 75,
290
+ 83, 83, 83, 83, 83, 83, 83, 83,
291
+ 83, 83, 75, 84, 75, 75, 75, 75,
292
+ 75, 83, 83, 83, 83, 83, 83, 75,
293
+ 75, 75, 75, 75, 75, 75, 75, 75,
294
+ 75, 75, 75, 75, 75, 75, 75, 75,
295
+ 75, 75, 75, 75, 75, 75, 75, 75,
296
+ 75, 83, 83, 83, 83, 83, 83, 75,
297
+ 85, 85, 85, 85, 85, 85, 85, 85,
298
+ 85, 85, 75, 86, 75, 75, 75, 75,
299
+ 75, 85, 85, 85, 85, 85, 85, 85,
300
+ 85, 85, 85, 85, 85, 85, 85, 85,
301
+ 85, 85, 85, 85, 85, 85, 85, 85,
302
+ 85, 85, 85, 75, 75, 75, 75, 75,
303
+ 75, 85, 85, 85, 85, 85, 85, 85,
304
+ 85, 85, 85, 85, 85, 85, 85, 85,
305
+ 85, 85, 85, 85, 85, 85, 85, 85,
306
+ 85, 85, 85, 75, 88, 87, 87, 87,
307
+ 87, 87, 87, 87, 87, 87, 87, 87,
308
+ 87, 87, 87, 87, 87, 87, 87, 87,
309
+ 87, 87, 89, 87, 91, 90, 90, 90,
310
+ 90, 90, 90, 90, 90, 90, 90, 90,
311
+ 90, 90, 90, 90, 90, 90, 90, 90,
312
+ 90, 90, 92, 90, 94, 93, 93, 93,
313
+ 93, 93, 93, 93, 93, 93, 93, 93,
314
+ 93, 93, 93, 93, 93, 93, 93, 93,
315
+ 93, 93, 95, 93, 97, 96, 96, 96,
316
+ 96, 96, 96, 96, 96, 96, 96, 96,
317
+ 96, 96, 96, 96, 96, 96, 96, 96,
318
+ 96, 96, 98, 96, 100, 99, 99, 99,
319
+ 99, 99, 99, 99, 99, 99, 99, 99,
320
+ 99, 99, 99, 99, 99, 99, 99, 99,
321
+ 99, 99, 101, 99, 103, 102, 102, 102,
322
+ 102, 102, 102, 102, 102, 102, 102, 102,
323
+ 102, 102, 102, 102, 102, 102, 102, 102,
324
+ 102, 102, 104, 102, 106, 105, 105, 105,
325
+ 105, 105, 105, 105, 105, 105, 105, 105,
326
+ 105, 105, 105, 105, 105, 105, 105, 105,
327
+ 105, 105, 107, 105, 109, 108, 108, 108,
328
+ 108, 108, 108, 108, 108, 108, 108, 108,
329
+ 108, 108, 108, 108, 108, 108, 108, 108,
330
+ 108, 108, 110, 108, 112, 111, 111, 111,
331
+ 111, 111, 111, 111, 111, 111, 111, 111,
332
+ 111, 111, 111, 111, 111, 111, 111, 111,
333
+ 111, 111, 113, 111, 42, 0
334
+ ]
335
+
336
+ class << self
337
+ attr_accessor :_markup_trans_targs
338
+ private :_markup_trans_targs, :_markup_trans_targs=
339
+ end
340
+ self._markup_trans_targs = [
341
+ 2, 0, 15, 36, 38, 2, 3, 5,
342
+ 51, 4, 3, 5, 51, 4, 3, 5,
343
+ 6, 51, 7, 12, 8, 11, 10, 8,
344
+ 9, 10, 3, 5, 51, 8, 9, 10,
345
+ 3, 5, 51, 13, 14, 13, 14, 13,
346
+ 14, 16, 0, 20, 27, 17, 18, 19,
347
+ 52, 21, 22, 23, 24, 25, 26, 53,
348
+ 28, 29, 30, 31, 32, 33, 34, 35,
349
+ 54, 37, 37, 55, 39, 0, 39, 40,
350
+ 40, 41, 56, 0, 43, 47, 44, 45,
351
+ 44, 57, 46, 46, 57, 47, 57, 49,
352
+ 50, 1, 49, 50, 1, 49, 50, 1,
353
+ 49, 50, 1, 49, 50, 1, 49, 50,
354
+ 1, 49, 50, 1, 49, 50, 1, 49,
355
+ 50, 1
356
+ ]
357
+
358
+ class << self
359
+ attr_accessor :_markup_trans_actions
360
+ private :_markup_trans_actions, :_markup_trans_actions=
361
+ end
362
+ self._markup_trans_actions = [
363
+ 2, 1, 0, 0, 0, 0, 3, 4,
364
+ 3, 5, 0, 6, 0, 0, 7, 8,
365
+ 9, 7, 0, 0, 10, 0, 11, 0,
366
+ 12, 13, 14, 15, 14, 16, 17, 18,
367
+ 19, 20, 19, 10, 11, 0, 13, 16,
368
+ 18, 0, 0, 0, 0, 0, 0, 0,
369
+ 0, 0, 0, 0, 0, 0, 0, 0,
370
+ 0, 0, 0, 0, 0, 0, 0, 0,
371
+ 0, 2, 0, 9, 2, 24, 0, 25,
372
+ 0, 26, 0, 27, 0, 28, 28, 0,
373
+ 0, 29, 28, 0, 30, 0, 31, 32,
374
+ 33, 34, 0, 13, 36, 16, 18, 38,
375
+ 40, 41, 42, 44, 45, 46, 48, 49,
376
+ 50, 52, 53, 54, 56, 57, 58, 60,
377
+ 61, 62
378
+ ]
379
+
380
+ class << self
381
+ attr_accessor :_markup_eof_actions
382
+ private :_markup_eof_actions, :_markup_eof_actions=
383
+ end
384
+ self._markup_eof_actions = [
385
+ 0, 1, 1, 1, 1, 1, 1, 1,
386
+ 1, 1, 1, 1, 1, 1, 1, 0,
387
+ 0, 21, 21, 21, 0, 0, 0, 0,
388
+ 0, 0, 22, 0, 0, 0, 0, 0,
389
+ 0, 23, 23, 23, 1, 1, 24, 24,
390
+ 24, 24, 27, 27, 27, 27, 27, 27,
391
+ 0, 35, 37, 39, 43, 47, 51, 55,
392
+ 59, 0
393
+ ]
394
+
395
+ class << self
396
+ attr_accessor :markup_start
397
+ end
398
+ self.markup_start = 48;
399
+ class << self
400
+ attr_accessor :markup_first_final
401
+ end
402
+ self.markup_first_final = 48;
403
+ class << self
404
+ attr_accessor :markup_error
405
+ end
406
+ self.markup_error = 0;
407
+
408
+ class << self
409
+ attr_accessor :markup_en_parse_entity
410
+ end
411
+ self.markup_en_parse_entity = 42;
412
+ class << self
413
+ attr_accessor :markup_en_main
414
+ end
415
+ self.markup_en_main = 48;
416
+
417
+
418
+ # line 197 "markup.rl"
419
+
420
+ def self.parse_markup(buffer, delegate, entities)
421
+ data = buffer.read
422
+ encoding = buffer.encoding
423
+ bytes = data.bytes
424
+
425
+ p = 0
426
+ # Must set pe here or it gets incorrectly set to data.length
427
+ pe = eof = data.bytesize
428
+ stack = []
429
+
430
+ pcdata = nil
431
+ characters_begin = characters_end = nil
432
+ entity_begin = entity_end = nil
433
+ identifier_begin = identifier_end = nil
434
+ doctype_begin = doctype_end = nil
435
+ comment_begin = comment_end = nil
436
+ instruction_begin = instruction_end = nil
437
+ cdata_begin = cdata_end = nil
438
+ has_entities = has_value = false
439
+
440
+
441
+ # line 442 "markup.rb"
442
+ begin
443
+ p ||= 0
444
+ pe ||= data.length
445
+ cs = markup_start
446
+ top = 0
447
+ end
448
+
449
+ # line 219 "markup.rl"
450
+
451
+ # line 452 "markup.rb"
452
+ begin
453
+ testEof = false
454
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
455
+ _goto_level = 0
456
+ _resume = 10
457
+ _eof_trans = 15
458
+ _again = 20
459
+ _test_eof = 30
460
+ _out = 40
461
+ while true
462
+ if _goto_level <= 0
463
+ if p == pe
464
+ _goto_level = _test_eof
465
+ next
466
+ end
467
+ if cs == 0
468
+ _goto_level = _out
469
+ next
470
+ end
471
+ end
472
+ if _goto_level <= _resume
473
+ _keys = cs << 1
474
+ _inds = _markup_index_offsets[cs]
475
+ _slen = _markup_key_spans[cs]
476
+ _wide = ( bytes[p])
477
+ _trans = if ( _slen > 0 &&
478
+ _markup_trans_keys[_keys] <= _wide &&
479
+ _wide <= _markup_trans_keys[_keys + 1]
480
+ ) then
481
+ _markup_indicies[ _inds + _wide - _markup_trans_keys[_keys] ]
482
+ else
483
+ _markup_indicies[ _inds + _slen ]
484
+ end
485
+ cs = _markup_trans_targs[_trans]
486
+ if _markup_trans_actions[_trans] != 0
487
+ case _markup_trans_actions[_trans]
488
+ when 2 then
489
+ # line 7 "markup.rl"
490
+ begin
491
+
492
+ identifier_begin = p
493
+ end
494
+ when 9 then
495
+ # line 11 "markup.rl"
496
+ begin
497
+
498
+ identifier_end = p
499
+ end
500
+ when 17 then
501
+ # line 20 "markup.rl"
502
+ begin
503
+
504
+ end
505
+ when 16 then
506
+ # line 32 "markup.rl"
507
+ begin
508
+
509
+ characters_begin = p
510
+ end
511
+ when 27 then
512
+ # line 42 "markup.rl"
513
+ begin
514
+
515
+ raise ParseError.new("could not parse entity", buffer, p)
516
+ end
517
+ when 28 then
518
+ # line 46 "markup.rl"
519
+ begin
520
+
521
+ entity_begin = p
522
+ end
523
+ when 26 then
524
+ # line 108 "markup.rl"
525
+ begin
526
+
527
+ end
528
+ when 24 then
529
+ # line 115 "markup.rl"
530
+ begin
531
+
532
+ raise ParseError.new("could not parse instruction", buffer, p)
533
+ end
534
+ when 6 then
535
+ # line 128 "markup.rl"
536
+ begin
537
+
538
+ self_closing = true
539
+ end
540
+ when 1 then
541
+ # line 168 "markup.rl"
542
+ begin
543
+
544
+ raise ParseError.new("could not parse tag", buffer, p)
545
+ end
546
+ when 18 then
547
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
548
+ begin
549
+ begin
550
+ stack[top] = cs
551
+ top+= 1
552
+ cs = 42
553
+ _goto_level = _again
554
+ next
555
+ end
556
+ end
557
+ when 25 then
558
+ # line 11 "markup.rl"
559
+ begin
560
+
561
+ identifier_end = p
562
+ end
563
+ # line 105 "markup.rl"
564
+ begin
565
+
566
+ end
567
+ when 3 then
568
+ # line 11 "markup.rl"
569
+ begin
570
+
571
+ identifier_end = p
572
+ end
573
+ # line 119 "markup.rl"
574
+ begin
575
+
576
+ self_closing = false
577
+
578
+ delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
579
+ end
580
+ when 7 then
581
+ # line 11 "markup.rl"
582
+ begin
583
+
584
+ identifier_end = p
585
+ end
586
+ # line 145 "markup.rl"
587
+ begin
588
+
589
+ if has_value
590
+ pcdata = MarkupString.raw(pcdata) unless has_entities
591
+
592
+ value = pcdata
593
+ else
594
+ value = true
595
+ end
596
+
597
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
598
+ end
599
+ when 10 then
600
+ # line 15 "markup.rl"
601
+ begin
602
+
603
+ pcdata = ""
604
+ has_entities = false
605
+ end
606
+ # line 32 "markup.rl"
607
+ begin
608
+
609
+ characters_begin = p
610
+ end
611
+ when 11 then
612
+ # line 15 "markup.rl"
613
+ begin
614
+
615
+ pcdata = ""
616
+ has_entities = false
617
+ end
618
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
619
+ begin
620
+ begin
621
+ stack[top] = cs
622
+ top+= 1
623
+ cs = 42
624
+ _goto_level = _again
625
+ next
626
+ end
627
+ end
628
+ when 12 then
629
+ # line 36 "markup.rl"
630
+ begin
631
+
632
+ characters_end = p
633
+
634
+ pcdata << data.byteslice(characters_begin...characters_end)
635
+ end
636
+ # line 20 "markup.rl"
637
+ begin
638
+
639
+ end
640
+ when 13 then
641
+ # line 36 "markup.rl"
642
+ begin
643
+
644
+ characters_end = p
645
+
646
+ pcdata << data.byteslice(characters_begin...characters_end)
647
+ end
648
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
649
+ begin
650
+ begin
651
+ stack[top] = cs
652
+ top+= 1
653
+ cs = 42
654
+ _goto_level = _again
655
+ next
656
+ end
657
+ end
658
+ when 31 then
659
+ # line 50 "markup.rl"
660
+ begin
661
+
662
+ entity_end = p
663
+
664
+ name = data.byteslice(entity_begin...entity_end)
665
+
666
+ has_entities = true
667
+ pcdata << entities[name]
668
+ end
669
+ # line 8 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
670
+ begin
671
+ begin
672
+ top -= 1
673
+ cs = stack[top]
674
+ _goto_level = _again
675
+ next
676
+ end
677
+ end
678
+ when 30 then
679
+ # line 59 "markup.rl"
680
+ begin
681
+
682
+ entity_end = p
683
+
684
+ has_entities = true
685
+ pcdata << data.byteslice(entity_begin...entity_end).to_i(16)
686
+ end
687
+ # line 8 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
688
+ begin
689
+ begin
690
+ top -= 1
691
+ cs = stack[top]
692
+ _goto_level = _again
693
+ next
694
+ end
695
+ end
696
+ when 29 then
697
+ # line 66 "markup.rl"
698
+ begin
699
+
700
+ entity_end = p
701
+
702
+ has_entities = true
703
+ pcdata << data.byteslice(entity_begin...entity_end).to_i(10)
704
+ end
705
+ # line 8 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
706
+ begin
707
+ begin
708
+ top -= 1
709
+ cs = stack[top]
710
+ _goto_level = _again
711
+ next
712
+ end
713
+ end
714
+ when 5 then
715
+ # line 132 "markup.rl"
716
+ begin
717
+
718
+ has_value = false
719
+ pcdata = ""
720
+ end
721
+ # line 7 "markup.rl"
722
+ begin
723
+
724
+ identifier_begin = p
725
+ end
726
+ when 14 then
727
+ # line 137 "markup.rl"
728
+ begin
729
+
730
+ has_value = true
731
+ end
732
+ # line 145 "markup.rl"
733
+ begin
734
+
735
+ if has_value
736
+ pcdata = MarkupString.raw(pcdata) unless has_entities
737
+
738
+ value = pcdata
739
+ else
740
+ value = true
741
+ end
742
+
743
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
744
+ end
745
+ when 19 then
746
+ # line 141 "markup.rl"
747
+ begin
748
+
749
+ has_value = true
750
+ end
751
+ # line 145 "markup.rl"
752
+ begin
753
+
754
+ if has_value
755
+ pcdata = MarkupString.raw(pcdata) unless has_entities
756
+
757
+ value = pcdata
758
+ else
759
+ value = true
760
+ end
761
+
762
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
763
+ end
764
+ when 4 then
765
+ # line 11 "markup.rl"
766
+ begin
767
+
768
+ identifier_end = p
769
+ end
770
+ # line 119 "markup.rl"
771
+ begin
772
+
773
+ self_closing = false
774
+
775
+ delegate.open_tag_begin(data.byteslice(identifier_begin...identifier_end), identifier_begin)
776
+ end
777
+ # line 128 "markup.rl"
778
+ begin
779
+
780
+ self_closing = true
781
+ end
782
+ when 8 then
783
+ # line 11 "markup.rl"
784
+ begin
785
+
786
+ identifier_end = p
787
+ end
788
+ # line 145 "markup.rl"
789
+ begin
790
+
791
+ if has_value
792
+ pcdata = MarkupString.raw(pcdata) unless has_entities
793
+
794
+ value = pcdata
795
+ else
796
+ value = true
797
+ end
798
+
799
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
800
+ end
801
+ # line 128 "markup.rl"
802
+ begin
803
+
804
+ self_closing = true
805
+ end
806
+ when 32 then
807
+ # line 23 "markup.rl"
808
+ begin
809
+
810
+ end
811
+ # line 15 "markup.rl"
812
+ begin
813
+
814
+ pcdata = ""
815
+ has_entities = false
816
+ end
817
+ # line 32 "markup.rl"
818
+ begin
819
+
820
+ characters_begin = p
821
+ end
822
+ when 33 then
823
+ # line 23 "markup.rl"
824
+ begin
825
+
826
+ end
827
+ # line 15 "markup.rl"
828
+ begin
829
+
830
+ pcdata = ""
831
+ has_entities = false
832
+ end
833
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
834
+ begin
835
+ begin
836
+ stack[top] = cs
837
+ top+= 1
838
+ cs = 42
839
+ _goto_level = _again
840
+ next
841
+ end
842
+ end
843
+ when 15 then
844
+ # line 137 "markup.rl"
845
+ begin
846
+
847
+ has_value = true
848
+ end
849
+ # line 145 "markup.rl"
850
+ begin
851
+
852
+ if has_value
853
+ pcdata = MarkupString.raw(pcdata) unless has_entities
854
+
855
+ value = pcdata
856
+ else
857
+ value = true
858
+ end
859
+
860
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
861
+ end
862
+ # line 128 "markup.rl"
863
+ begin
864
+
865
+ self_closing = true
866
+ end
867
+ when 20 then
868
+ # line 141 "markup.rl"
869
+ begin
870
+
871
+ has_value = true
872
+ end
873
+ # line 145 "markup.rl"
874
+ begin
875
+
876
+ if has_value
877
+ pcdata = MarkupString.raw(pcdata) unless has_entities
878
+
879
+ value = pcdata
880
+ else
881
+ value = true
882
+ end
883
+
884
+ delegate.attribute(data.byteslice(identifier_begin...identifier_end), value)
885
+ end
886
+ # line 128 "markup.rl"
887
+ begin
888
+
889
+ self_closing = true
890
+ end
891
+ when 48 then
892
+ # line 77 "markup.rl"
893
+ begin
894
+
895
+ doctype_end = p
896
+
897
+ delegate.doctype(data.byteslice(doctype_begin...doctype_end))
898
+ end
899
+ # line 23 "markup.rl"
900
+ begin
901
+
902
+ end
903
+ # line 15 "markup.rl"
904
+ begin
905
+
906
+ pcdata = ""
907
+ has_entities = false
908
+ end
909
+ # line 32 "markup.rl"
910
+ begin
911
+
912
+ characters_begin = p
913
+ end
914
+ when 49 then
915
+ # line 77 "markup.rl"
916
+ begin
917
+
918
+ doctype_end = p
919
+
920
+ delegate.doctype(data.byteslice(doctype_begin...doctype_end))
921
+ end
922
+ # line 23 "markup.rl"
923
+ begin
924
+
925
+ end
926
+ # line 15 "markup.rl"
927
+ begin
928
+
929
+ pcdata = ""
930
+ has_entities = false
931
+ end
932
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
933
+ begin
934
+ begin
935
+ stack[top] = cs
936
+ top+= 1
937
+ cs = 42
938
+ _goto_level = _again
939
+ next
940
+ end
941
+ end
942
+ when 44 then
943
+ # line 91 "markup.rl"
944
+ begin
945
+
946
+ comment_end = p
947
+
948
+ delegate.comment(data.byteslice(comment_begin...comment_end))
949
+ end
950
+ # line 23 "markup.rl"
951
+ begin
952
+
953
+ end
954
+ # line 15 "markup.rl"
955
+ begin
956
+
957
+ pcdata = ""
958
+ has_entities = false
959
+ end
960
+ # line 32 "markup.rl"
961
+ begin
962
+
963
+ characters_begin = p
964
+ end
965
+ when 45 then
966
+ # line 91 "markup.rl"
967
+ begin
968
+
969
+ comment_end = p
970
+
971
+ delegate.comment(data.byteslice(comment_begin...comment_end))
972
+ end
973
+ # line 23 "markup.rl"
974
+ begin
975
+
976
+ end
977
+ # line 15 "markup.rl"
978
+ begin
979
+
980
+ pcdata = ""
981
+ has_entities = false
982
+ end
983
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
984
+ begin
985
+ begin
986
+ stack[top] = cs
987
+ top+= 1
988
+ cs = 42
989
+ _goto_level = _again
990
+ next
991
+ end
992
+ end
993
+ when 60 then
994
+ # line 111 "markup.rl"
995
+ begin
996
+
997
+ delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
998
+ end
999
+ # line 23 "markup.rl"
1000
+ begin
1001
+
1002
+ end
1003
+ # line 15 "markup.rl"
1004
+ begin
1005
+
1006
+ pcdata = ""
1007
+ has_entities = false
1008
+ end
1009
+ # line 32 "markup.rl"
1010
+ begin
1011
+
1012
+ characters_begin = p
1013
+ end
1014
+ when 61 then
1015
+ # line 111 "markup.rl"
1016
+ begin
1017
+
1018
+ delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1019
+ end
1020
+ # line 23 "markup.rl"
1021
+ begin
1022
+
1023
+ end
1024
+ # line 15 "markup.rl"
1025
+ begin
1026
+
1027
+ pcdata = ""
1028
+ has_entities = false
1029
+ end
1030
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
1031
+ begin
1032
+ begin
1033
+ stack[top] = cs
1034
+ top+= 1
1035
+ cs = 42
1036
+ _goto_level = _again
1037
+ next
1038
+ end
1039
+ end
1040
+ when 40 then
1041
+ # line 157 "markup.rl"
1042
+ begin
1043
+
1044
+ delegate.open_tag_end(self_closing)
1045
+ end
1046
+ # line 23 "markup.rl"
1047
+ begin
1048
+
1049
+ end
1050
+ # line 15 "markup.rl"
1051
+ begin
1052
+
1053
+ pcdata = ""
1054
+ has_entities = false
1055
+ end
1056
+ # line 32 "markup.rl"
1057
+ begin
1058
+
1059
+ characters_begin = p
1060
+ end
1061
+ when 41 then
1062
+ # line 157 "markup.rl"
1063
+ begin
1064
+
1065
+ delegate.open_tag_end(self_closing)
1066
+ end
1067
+ # line 23 "markup.rl"
1068
+ begin
1069
+
1070
+ end
1071
+ # line 15 "markup.rl"
1072
+ begin
1073
+
1074
+ pcdata = ""
1075
+ has_entities = false
1076
+ end
1077
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
1078
+ begin
1079
+ begin
1080
+ stack[top] = cs
1081
+ top+= 1
1082
+ cs = 42
1083
+ _goto_level = _again
1084
+ next
1085
+ end
1086
+ end
1087
+ when 56 then
1088
+ # line 164 "markup.rl"
1089
+ begin
1090
+
1091
+ delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1092
+ end
1093
+ # line 23 "markup.rl"
1094
+ begin
1095
+
1096
+ end
1097
+ # line 15 "markup.rl"
1098
+ begin
1099
+
1100
+ pcdata = ""
1101
+ has_entities = false
1102
+ end
1103
+ # line 32 "markup.rl"
1104
+ begin
1105
+
1106
+ characters_begin = p
1107
+ end
1108
+ when 57 then
1109
+ # line 164 "markup.rl"
1110
+ begin
1111
+
1112
+ delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1113
+ end
1114
+ # line 23 "markup.rl"
1115
+ begin
1116
+
1117
+ end
1118
+ # line 15 "markup.rl"
1119
+ begin
1120
+
1121
+ pcdata = ""
1122
+ has_entities = false
1123
+ end
1124
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
1125
+ begin
1126
+ begin
1127
+ stack[top] = cs
1128
+ top+= 1
1129
+ cs = 42
1130
+ _goto_level = _again
1131
+ next
1132
+ end
1133
+ end
1134
+ when 52 then
1135
+ # line 176 "markup.rl"
1136
+ begin
1137
+
1138
+ cdata_end = p
1139
+
1140
+ delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1141
+ end
1142
+ # line 23 "markup.rl"
1143
+ begin
1144
+
1145
+ end
1146
+ # line 15 "markup.rl"
1147
+ begin
1148
+
1149
+ pcdata = ""
1150
+ has_entities = false
1151
+ end
1152
+ # line 32 "markup.rl"
1153
+ begin
1154
+
1155
+ characters_begin = p
1156
+ end
1157
+ when 53 then
1158
+ # line 176 "markup.rl"
1159
+ begin
1160
+
1161
+ cdata_end = p
1162
+
1163
+ delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1164
+ end
1165
+ # line 23 "markup.rl"
1166
+ begin
1167
+
1168
+ end
1169
+ # line 15 "markup.rl"
1170
+ begin
1171
+
1172
+ pcdata = ""
1173
+ has_entities = false
1174
+ end
1175
+ # line 10 "/home/samuel/Projects/socketry/xrb/parsers/xrb/entities.rl"
1176
+ begin
1177
+ begin
1178
+ stack[top] = cs
1179
+ top+= 1
1180
+ cs = 42
1181
+ _goto_level = _again
1182
+ next
1183
+ end
1184
+ end
1185
+ when 34 then
1186
+ # line 125 "markup.rl"
1187
+ begin
1188
+
1189
+ end
1190
+ # line 161 "markup.rl"
1191
+ begin
1192
+
1193
+ end
1194
+ # line 101 "markup.rl"
1195
+ begin
1196
+
1197
+ instruction_begin = p
1198
+ end
1199
+ # line 87 "markup.rl"
1200
+ begin
1201
+
1202
+ comment_begin = p
1203
+ end
1204
+ # line 73 "markup.rl"
1205
+ begin
1206
+
1207
+ doctype_begin = p
1208
+ end
1209
+ # line 172 "markup.rl"
1210
+ begin
1211
+
1212
+ cdata_begin = p
1213
+ end
1214
+ when 50 then
1215
+ # line 77 "markup.rl"
1216
+ begin
1217
+
1218
+ doctype_end = p
1219
+
1220
+ delegate.doctype(data.byteslice(doctype_begin...doctype_end))
1221
+ end
1222
+ # line 125 "markup.rl"
1223
+ begin
1224
+
1225
+ end
1226
+ # line 161 "markup.rl"
1227
+ begin
1228
+
1229
+ end
1230
+ # line 101 "markup.rl"
1231
+ begin
1232
+
1233
+ instruction_begin = p
1234
+ end
1235
+ # line 87 "markup.rl"
1236
+ begin
1237
+
1238
+ comment_begin = p
1239
+ end
1240
+ # line 73 "markup.rl"
1241
+ begin
1242
+
1243
+ doctype_begin = p
1244
+ end
1245
+ # line 172 "markup.rl"
1246
+ begin
1247
+
1248
+ cdata_begin = p
1249
+ end
1250
+ when 46 then
1251
+ # line 91 "markup.rl"
1252
+ begin
1253
+
1254
+ comment_end = p
1255
+
1256
+ delegate.comment(data.byteslice(comment_begin...comment_end))
1257
+ end
1258
+ # line 125 "markup.rl"
1259
+ begin
1260
+
1261
+ end
1262
+ # line 161 "markup.rl"
1263
+ begin
1264
+
1265
+ end
1266
+ # line 101 "markup.rl"
1267
+ begin
1268
+
1269
+ instruction_begin = p
1270
+ end
1271
+ # line 87 "markup.rl"
1272
+ begin
1273
+
1274
+ comment_begin = p
1275
+ end
1276
+ # line 73 "markup.rl"
1277
+ begin
1278
+
1279
+ doctype_begin = p
1280
+ end
1281
+ # line 172 "markup.rl"
1282
+ begin
1283
+
1284
+ cdata_begin = p
1285
+ end
1286
+ when 62 then
1287
+ # line 111 "markup.rl"
1288
+ begin
1289
+
1290
+ delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1291
+ end
1292
+ # line 125 "markup.rl"
1293
+ begin
1294
+
1295
+ end
1296
+ # line 161 "markup.rl"
1297
+ begin
1298
+
1299
+ end
1300
+ # line 101 "markup.rl"
1301
+ begin
1302
+
1303
+ instruction_begin = p
1304
+ end
1305
+ # line 87 "markup.rl"
1306
+ begin
1307
+
1308
+ comment_begin = p
1309
+ end
1310
+ # line 73 "markup.rl"
1311
+ begin
1312
+
1313
+ doctype_begin = p
1314
+ end
1315
+ # line 172 "markup.rl"
1316
+ begin
1317
+
1318
+ cdata_begin = p
1319
+ end
1320
+ when 42 then
1321
+ # line 157 "markup.rl"
1322
+ begin
1323
+
1324
+ delegate.open_tag_end(self_closing)
1325
+ end
1326
+ # line 125 "markup.rl"
1327
+ begin
1328
+
1329
+ end
1330
+ # line 161 "markup.rl"
1331
+ begin
1332
+
1333
+ end
1334
+ # line 101 "markup.rl"
1335
+ begin
1336
+
1337
+ instruction_begin = p
1338
+ end
1339
+ # line 87 "markup.rl"
1340
+ begin
1341
+
1342
+ comment_begin = p
1343
+ end
1344
+ # line 73 "markup.rl"
1345
+ begin
1346
+
1347
+ doctype_begin = p
1348
+ end
1349
+ # line 172 "markup.rl"
1350
+ begin
1351
+
1352
+ cdata_begin = p
1353
+ end
1354
+ when 58 then
1355
+ # line 164 "markup.rl"
1356
+ begin
1357
+
1358
+ delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1359
+ end
1360
+ # line 125 "markup.rl"
1361
+ begin
1362
+
1363
+ end
1364
+ # line 161 "markup.rl"
1365
+ begin
1366
+
1367
+ end
1368
+ # line 101 "markup.rl"
1369
+ begin
1370
+
1371
+ instruction_begin = p
1372
+ end
1373
+ # line 87 "markup.rl"
1374
+ begin
1375
+
1376
+ comment_begin = p
1377
+ end
1378
+ # line 73 "markup.rl"
1379
+ begin
1380
+
1381
+ doctype_begin = p
1382
+ end
1383
+ # line 172 "markup.rl"
1384
+ begin
1385
+
1386
+ cdata_begin = p
1387
+ end
1388
+ when 54 then
1389
+ # line 176 "markup.rl"
1390
+ begin
1391
+
1392
+ cdata_end = p
1393
+
1394
+ delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1395
+ end
1396
+ # line 125 "markup.rl"
1397
+ begin
1398
+
1399
+ end
1400
+ # line 161 "markup.rl"
1401
+ begin
1402
+
1403
+ end
1404
+ # line 101 "markup.rl"
1405
+ begin
1406
+
1407
+ instruction_begin = p
1408
+ end
1409
+ # line 87 "markup.rl"
1410
+ begin
1411
+
1412
+ comment_begin = p
1413
+ end
1414
+ # line 73 "markup.rl"
1415
+ begin
1416
+
1417
+ doctype_begin = p
1418
+ end
1419
+ # line 172 "markup.rl"
1420
+ begin
1421
+
1422
+ cdata_begin = p
1423
+ end
1424
+ when 38 then
1425
+ # line 20 "markup.rl"
1426
+ begin
1427
+
1428
+ end
1429
+ # line 26 "markup.rl"
1430
+ begin
1431
+
1432
+ pcdata = MarkupString.raw(pcdata) unless has_entities
1433
+
1434
+ delegate.text(pcdata)
1435
+ end
1436
+ # line 125 "markup.rl"
1437
+ begin
1438
+
1439
+ end
1440
+ # line 161 "markup.rl"
1441
+ begin
1442
+
1443
+ end
1444
+ # line 101 "markup.rl"
1445
+ begin
1446
+
1447
+ instruction_begin = p
1448
+ end
1449
+ # line 87 "markup.rl"
1450
+ begin
1451
+
1452
+ comment_begin = p
1453
+ end
1454
+ # line 73 "markup.rl"
1455
+ begin
1456
+
1457
+ doctype_begin = p
1458
+ end
1459
+ # line 172 "markup.rl"
1460
+ begin
1461
+
1462
+ cdata_begin = p
1463
+ end
1464
+ when 36 then
1465
+ # line 36 "markup.rl"
1466
+ begin
1467
+
1468
+ characters_end = p
1469
+
1470
+ pcdata << data.byteslice(characters_begin...characters_end)
1471
+ end
1472
+ # line 20 "markup.rl"
1473
+ begin
1474
+
1475
+ end
1476
+ # line 26 "markup.rl"
1477
+ begin
1478
+
1479
+ pcdata = MarkupString.raw(pcdata) unless has_entities
1480
+
1481
+ delegate.text(pcdata)
1482
+ end
1483
+ # line 125 "markup.rl"
1484
+ begin
1485
+
1486
+ end
1487
+ # line 161 "markup.rl"
1488
+ begin
1489
+
1490
+ end
1491
+ # line 101 "markup.rl"
1492
+ begin
1493
+
1494
+ instruction_begin = p
1495
+ end
1496
+ # line 87 "markup.rl"
1497
+ begin
1498
+
1499
+ comment_begin = p
1500
+ end
1501
+ # line 73 "markup.rl"
1502
+ begin
1503
+
1504
+ doctype_begin = p
1505
+ end
1506
+ # line 172 "markup.rl"
1507
+ begin
1508
+
1509
+ cdata_begin = p
1510
+ end
1511
+ # line 1512 "markup.rb"
1512
+ end
1513
+ end
1514
+ end
1515
+ if _goto_level <= _again
1516
+ if cs == 0
1517
+ _goto_level = _out
1518
+ next
1519
+ end
1520
+ p += 1
1521
+ if p != pe
1522
+ _goto_level = _resume
1523
+ next
1524
+ end
1525
+ end
1526
+ if _goto_level <= _test_eof
1527
+ if p == eof
1528
+ case _markup_eof_actions[cs]
1529
+ when 27 then
1530
+ # line 42 "markup.rl"
1531
+ begin
1532
+
1533
+ raise ParseError.new("could not parse entity", buffer, p)
1534
+ end
1535
+ when 47 then
1536
+ # line 77 "markup.rl"
1537
+ begin
1538
+
1539
+ doctype_end = p
1540
+
1541
+ delegate.doctype(data.byteslice(doctype_begin...doctype_end))
1542
+ end
1543
+ when 22 then
1544
+ # line 83 "markup.rl"
1545
+ begin
1546
+
1547
+ raise ParseError.new("could not parse doctype", buffer, p)
1548
+ end
1549
+ when 43 then
1550
+ # line 91 "markup.rl"
1551
+ begin
1552
+
1553
+ comment_end = p
1554
+
1555
+ delegate.comment(data.byteslice(comment_begin...comment_end))
1556
+ end
1557
+ when 21 then
1558
+ # line 97 "markup.rl"
1559
+ begin
1560
+
1561
+ raise ParseError.new("could not parse comment", buffer, p)
1562
+ end
1563
+ when 59 then
1564
+ # line 111 "markup.rl"
1565
+ begin
1566
+
1567
+ delegate.instruction(data.byteslice(instruction_begin, p-instruction_begin))
1568
+ end
1569
+ when 24 then
1570
+ # line 115 "markup.rl"
1571
+ begin
1572
+
1573
+ raise ParseError.new("could not parse instruction", buffer, p)
1574
+ end
1575
+ when 39 then
1576
+ # line 157 "markup.rl"
1577
+ begin
1578
+
1579
+ delegate.open_tag_end(self_closing)
1580
+ end
1581
+ when 55 then
1582
+ # line 164 "markup.rl"
1583
+ begin
1584
+
1585
+ delegate.close_tag(data.byteslice(identifier_begin...identifier_end), identifier_begin)
1586
+ end
1587
+ when 1 then
1588
+ # line 168 "markup.rl"
1589
+ begin
1590
+
1591
+ raise ParseError.new("could not parse tag", buffer, p)
1592
+ end
1593
+ when 51 then
1594
+ # line 176 "markup.rl"
1595
+ begin
1596
+
1597
+ cdata_end = p
1598
+
1599
+ delegate.cdata(data.byteslice(cdata_begin...cdata_end))
1600
+ end
1601
+ when 23 then
1602
+ # line 182 "markup.rl"
1603
+ begin
1604
+
1605
+ raise ParseError.new("could not parse cdata", buffer, p)
1606
+ end
1607
+ when 37 then
1608
+ # line 20 "markup.rl"
1609
+ begin
1610
+
1611
+ end
1612
+ # line 26 "markup.rl"
1613
+ begin
1614
+
1615
+ pcdata = MarkupString.raw(pcdata) unless has_entities
1616
+
1617
+ delegate.text(pcdata)
1618
+ end
1619
+ when 35 then
1620
+ # line 36 "markup.rl"
1621
+ begin
1622
+
1623
+ characters_end = p
1624
+
1625
+ pcdata << data.byteslice(characters_begin...characters_end)
1626
+ end
1627
+ # line 20 "markup.rl"
1628
+ begin
1629
+
1630
+ end
1631
+ # line 26 "markup.rl"
1632
+ begin
1633
+
1634
+ pcdata = MarkupString.raw(pcdata) unless has_entities
1635
+
1636
+ delegate.text(pcdata)
1637
+ end
1638
+ # line 1639 "markup.rb"
1639
+ end
1640
+ end
1641
+
1642
+ end
1643
+ if _goto_level <= _out
1644
+ break
1645
+ end
1646
+ end
1647
+ end
1648
+
1649
+ # line 220 "markup.rl"
1650
+
1651
+ if p != eof
1652
+ raise ParseError.new("could not consume all input", buffer, p)
1653
+ end
1654
+
1655
+ return nil
1656
+ end
1657
+ end
1658
+ end