radius-ts 1.0.0 → 1.1.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.
data/CHANGELOG CHANGED
@@ -1,4 +1,8 @@
1
1
  = Change Log
2
+ === 1.1.0-ts
3
+ * Allow switching scanners that tokenize templates.
4
+ * Include SquiggleScanner to parse tags that look like "{ hello /}"
5
+
2
6
  === 1.0.0-ts
3
7
  * Create a fork that is threadsafe (per-parser).
4
8
  * Bump revision to 1.0.0 since the API is stable
@@ -9,8 +9,9 @@ lib/radius/delegating_open_struct.rb
9
9
  lib/radius/error.rb
10
10
  lib/radius/parse_tag.rb
11
11
  lib/radius/parser.rb
12
- lib/radius/parser/scan.rb
13
- lib/radius/parser/scan.rl
12
+ lib/radius/parser/scanner.rb
13
+ lib/radius/parser/squiggle_scanner.rb
14
+ lib/radius/parser/scanner.rl
14
15
  lib/radius/tag_binding.rb
15
16
  lib/radius/tag_definitions.rb
16
17
  lib/radius/utility.rb
@@ -18,4 +19,4 @@ lib/radius/version.rb
18
19
  tasks/scan.rake
19
20
  test/context_test.rb
20
21
  test/parser_test.rb
21
- test/test_helper.rb
22
+ test/test_helper.rb
@@ -5,6 +5,6 @@ require 'radius/delegating_open_struct'
5
5
  require 'radius/tag_binding'
6
6
  require 'radius/context'
7
7
  require 'radius/parse_tag'
8
- require 'radius/parser/scan'
8
+ require 'radius/parser/scanner'
9
9
  require 'radius/parser'
10
- require 'radius/utility'
10
+ require 'radius/utility'
@@ -11,6 +11,9 @@ module Radius
11
11
  # The string that prefixes all tags that are expanded by a parser
12
12
  # (the part in the tag name before the first colon).
13
13
  attr_accessor :tag_prefix
14
+
15
+ # The class that performs tokenization of the input string
16
+ attr_accessor :scanner
14
17
 
15
18
  # Creates a new parser object initialized with a Context.
16
19
  def initialize(context = Context.new, options = {})
@@ -20,6 +23,7 @@ module Radius
20
23
  options = Utility.symbolize_keys(options)
21
24
  self.context = context ? context.dup : Context.new
22
25
  self.tag_prefix = options[:tag_prefix] || 'radius'
26
+ self.scanner = options[:scanner] || Radius::Scanner.new
23
27
  end
24
28
 
25
29
  # Parses string for tags, expands them, and returns the result.
@@ -33,7 +37,7 @@ module Radius
33
37
  protected
34
38
  # Convert the string into a list of text blocks and scanners (tokens)
35
39
  def tokenize(string)
36
- @tokens = Scanner.new.operate(tag_prefix, string)
40
+ @tokens = scanner.operate(tag_prefix, string)
37
41
  end
38
42
 
39
43
  def stack_up
@@ -0,0 +1,1180 @@
1
+
2
+ # line 1 "squiggle_scanner.rl"
3
+
4
+ # line 85 "squiggle_scanner.rl"
5
+
6
+
7
+ module Radius
8
+ class SquiggleScanner
9
+ def operate(prefix, data)
10
+ buf = ""
11
+ csel = ""
12
+ @prematch = ''
13
+ @starttag = nil
14
+ @attrs = {}
15
+ @flavor = :tasteless
16
+ @cursor = 0
17
+ @tagstart = 0
18
+ @nodes = ['']
19
+ remainder = data.dup
20
+
21
+ until remainder.length == 0
22
+ p = perform_parse(prefix, remainder)
23
+ remainder = remainder[p..-1]
24
+ end
25
+
26
+ return @nodes
27
+ end
28
+
29
+ private
30
+ def perform_parse(prefix, data)
31
+ stack = []
32
+ p = 0
33
+ ts = 0
34
+ te = 0
35
+ act = 0
36
+ eof = data.length
37
+
38
+ @prefix = prefix
39
+
40
+ # line 41 "squiggle_scanner.rb"
41
+ class << self
42
+ attr_accessor :_parser_trans_keys
43
+ private :_parser_trans_keys, :_parser_trans_keys=
44
+ end
45
+ self._parser_trans_keys = [
46
+ 0, 0, 9, 122, 9, 125,
47
+ 9, 125, 9, 122, 9,
48
+ 61, 9, 39, 34, 92,
49
+ 34, 92, 9, 125, 9, 125,
50
+ 125, 125, 34, 92, 9,
51
+ 125, 9, 125, 9, 122,
52
+ 9, 92, 9, 92, 9, 125,
53
+ 34, 125, 34, 92, 34,
54
+ 92, 9, 125, 39, 92,
55
+ 39, 92, 9, 125, 9, 122,
56
+ 9, 92, 9, 92, 34,
57
+ 92, 34, 92, 9, 125,
58
+ 9, 125, 9, 122, 9, 92,
59
+ 9, 92, 9, 125, 34,
60
+ 125, 9, 125, 9, 125,
61
+ 39, 125, 39, 92, 45, 122,
62
+ 9, 125, 9, 125, 0,
63
+ 0, 123, 123, 9, 122,
64
+ 0, 0, 0, 0, 34, 92,
65
+ 34, 92, 34, 92, 34,
66
+ 92, 39, 92, 39, 92,
67
+ 0, 0, 0
68
+ ]
69
+
70
+ class << self
71
+ attr_accessor :_parser_key_spans
72
+ private :_parser_key_spans, :_parser_key_spans=
73
+ end
74
+ self._parser_key_spans = [
75
+ 0, 114, 117, 117, 114, 53, 31, 59,
76
+ 59, 117, 117, 1, 59, 117, 117, 114,
77
+ 84, 84, 117, 92, 59, 59, 117, 54,
78
+ 54, 117, 114, 84, 84, 59, 59, 117,
79
+ 117, 114, 84, 84, 117, 92, 117, 117,
80
+ 87, 54, 78, 117, 117, 0, 1, 114,
81
+ 0, 0, 59, 59, 59, 59, 54, 54,
82
+ 0
83
+ ]
84
+
85
+ class << self
86
+ attr_accessor :_parser_index_offsets
87
+ private :_parser_index_offsets, :_parser_index_offsets=
88
+ end
89
+ self._parser_index_offsets = [
90
+ 0, 0, 115, 233, 351, 466, 520, 552,
91
+ 612, 672, 790, 908, 910, 970, 1088, 1206,
92
+ 1321, 1406, 1491, 1609, 1702, 1762, 1822, 1940,
93
+ 1995, 2050, 2168, 2283, 2368, 2453, 2513, 2573,
94
+ 2691, 2809, 2924, 3009, 3094, 3212, 3305, 3423,
95
+ 3541, 3629, 3684, 3763, 3881, 3999, 4000, 4002,
96
+ 4117, 4118, 4119, 4179, 4239, 4299, 4359, 4414,
97
+ 4469
98
+ ]
99
+
100
+ class << self
101
+ attr_accessor :_parser_indicies
102
+ private :_parser_indicies, :_parser_indicies=
103
+ end
104
+ self._parser_indicies = [
105
+ 1, 1, 1, 1, 1, 0, 0, 0,
106
+ 0, 0, 0, 0, 0, 0, 0, 0,
107
+ 0, 0, 0, 0, 0, 0, 0, 1,
108
+ 0, 0, 0, 0, 0, 0, 0, 0,
109
+ 0, 0, 0, 0, 2, 2, 3, 2,
110
+ 2, 2, 2, 2, 2, 2, 2, 2,
111
+ 2, 2, 0, 0, 0, 0, 2, 0,
112
+ 2, 2, 2, 2, 2, 2, 2, 2,
113
+ 2, 2, 2, 2, 2, 2, 2, 2,
114
+ 2, 2, 2, 2, 2, 2, 2, 2,
115
+ 2, 2, 0, 0, 0, 0, 2, 0,
116
+ 2, 2, 2, 2, 2, 2, 2, 2,
117
+ 2, 2, 2, 2, 2, 2, 2, 2,
118
+ 2, 2, 2, 2, 2, 2, 2, 2,
119
+ 2, 2, 0, 4, 4, 4, 4, 4,
120
+ 0, 0, 0, 0, 0, 0, 0, 0,
121
+ 0, 0, 0, 0, 0, 0, 0, 0,
122
+ 0, 0, 4, 0, 0, 0, 0, 0,
123
+ 0, 0, 0, 0, 0, 0, 0, 5,
124
+ 5, 6, 5, 5, 5, 5, 5, 5,
125
+ 5, 5, 5, 5, 5, 0, 0, 0,
126
+ 0, 5, 0, 5, 5, 5, 5, 5,
127
+ 5, 5, 5, 5, 5, 5, 5, 5,
128
+ 5, 5, 5, 5, 5, 5, 5, 5,
129
+ 5, 5, 5, 5, 5, 0, 0, 0,
130
+ 0, 5, 0, 5, 5, 5, 5, 5,
131
+ 5, 5, 5, 5, 5, 5, 5, 5,
132
+ 5, 5, 5, 5, 5, 5, 5, 5,
133
+ 5, 5, 5, 5, 5, 0, 0, 7,
134
+ 0, 8, 8, 8, 8, 8, 0, 0,
135
+ 0, 0, 0, 0, 0, 0, 0, 0,
136
+ 0, 0, 0, 0, 0, 0, 0, 0,
137
+ 8, 0, 0, 0, 0, 0, 0, 0,
138
+ 0, 0, 0, 0, 0, 9, 9, 10,
139
+ 9, 9, 9, 9, 9, 9, 9, 9,
140
+ 9, 9, 9, 0, 0, 0, 0, 9,
141
+ 0, 9, 9, 9, 9, 9, 9, 9,
142
+ 9, 9, 9, 9, 9, 9, 9, 9,
143
+ 9, 9, 9, 9, 9, 9, 9, 9,
144
+ 9, 9, 9, 0, 0, 0, 0, 9,
145
+ 0, 9, 9, 9, 9, 9, 9, 9,
146
+ 9, 9, 9, 9, 9, 9, 9, 9,
147
+ 9, 9, 9, 9, 9, 9, 9, 9,
148
+ 9, 9, 9, 0, 0, 11, 0, 13,
149
+ 13, 13, 13, 13, 12, 12, 12, 12,
150
+ 12, 12, 12, 12, 12, 12, 12, 12,
151
+ 12, 12, 12, 12, 12, 12, 13, 12,
152
+ 12, 12, 12, 12, 12, 12, 12, 12,
153
+ 12, 12, 12, 14, 14, 12, 14, 14,
154
+ 14, 14, 14, 14, 14, 14, 14, 14,
155
+ 14, 12, 12, 15, 12, 14, 12, 14,
156
+ 14, 14, 14, 14, 14, 14, 14, 14,
157
+ 14, 14, 14, 14, 14, 14, 14, 14,
158
+ 14, 14, 14, 14, 14, 14, 14, 14,
159
+ 14, 12, 12, 12, 12, 14, 12, 14,
160
+ 14, 14, 14, 14, 14, 14, 14, 14,
161
+ 14, 14, 14, 14, 14, 14, 14, 14,
162
+ 14, 14, 14, 14, 14, 14, 14, 14,
163
+ 14, 12, 16, 16, 16, 16, 16, 12,
164
+ 12, 12, 12, 12, 12, 12, 12, 12,
165
+ 12, 12, 12, 12, 12, 12, 12, 12,
166
+ 12, 16, 12, 12, 12, 12, 12, 12,
167
+ 12, 12, 12, 12, 12, 12, 12, 12,
168
+ 12, 12, 12, 12, 12, 12, 12, 12,
169
+ 12, 12, 12, 12, 12, 12, 17, 12,
170
+ 17, 17, 17, 17, 17, 12, 12, 12,
171
+ 12, 12, 12, 12, 12, 12, 12, 12,
172
+ 12, 12, 12, 12, 12, 12, 12, 17,
173
+ 12, 18, 12, 12, 12, 12, 19, 12,
174
+ 21, 20, 20, 20, 20, 20, 20, 20,
175
+ 20, 20, 20, 20, 20, 20, 20, 20,
176
+ 20, 20, 20, 20, 20, 20, 20, 20,
177
+ 20, 20, 20, 20, 20, 20, 20, 20,
178
+ 20, 20, 20, 20, 20, 20, 20, 20,
179
+ 20, 20, 20, 20, 20, 20, 20, 20,
180
+ 20, 20, 20, 20, 20, 20, 20, 20,
181
+ 20, 20, 22, 20, 24, 23, 23, 23,
182
+ 23, 23, 23, 23, 23, 23, 23, 23,
183
+ 23, 23, 23, 23, 23, 23, 23, 23,
184
+ 23, 23, 23, 23, 23, 23, 23, 23,
185
+ 23, 23, 23, 23, 23, 23, 23, 23,
186
+ 23, 23, 23, 23, 23, 23, 23, 23,
187
+ 23, 23, 23, 23, 23, 23, 23, 23,
188
+ 23, 23, 23, 23, 23, 23, 25, 23,
189
+ 26, 26, 26, 26, 26, 12, 12, 12,
190
+ 12, 12, 12, 12, 12, 12, 12, 12,
191
+ 12, 12, 12, 12, 12, 12, 12, 26,
192
+ 12, 12, 12, 12, 12, 12, 12, 12,
193
+ 12, 12, 12, 12, 27, 27, 28, 27,
194
+ 27, 27, 27, 27, 27, 27, 27, 27,
195
+ 27, 27, 12, 12, 12, 12, 27, 12,
196
+ 27, 27, 27, 27, 27, 27, 27, 27,
197
+ 27, 27, 27, 27, 27, 27, 27, 27,
198
+ 27, 27, 27, 27, 27, 27, 27, 27,
199
+ 27, 27, 12, 12, 12, 12, 27, 12,
200
+ 27, 27, 27, 27, 27, 27, 27, 27,
201
+ 27, 27, 27, 27, 27, 27, 27, 27,
202
+ 27, 27, 27, 27, 27, 27, 27, 27,
203
+ 27, 27, 12, 12, 29, 12, 30, 30,
204
+ 30, 30, 30, 12, 12, 12, 12, 12,
205
+ 12, 12, 12, 12, 12, 12, 12, 12,
206
+ 12, 12, 12, 12, 12, 30, 12, 12,
207
+ 12, 12, 12, 12, 12, 12, 12, 12,
208
+ 12, 12, 31, 31, 32, 31, 31, 31,
209
+ 31, 31, 31, 31, 31, 31, 31, 31,
210
+ 12, 12, 12, 12, 31, 12, 31, 31,
211
+ 31, 31, 31, 31, 31, 31, 31, 31,
212
+ 31, 31, 31, 31, 31, 31, 31, 31,
213
+ 31, 31, 31, 31, 31, 31, 31, 31,
214
+ 12, 12, 12, 12, 31, 12, 31, 31,
215
+ 31, 31, 31, 31, 31, 31, 31, 31,
216
+ 31, 31, 31, 31, 31, 31, 31, 31,
217
+ 31, 31, 31, 31, 31, 31, 31, 31,
218
+ 12, 12, 33, 12, 34, 12, 35, 23,
219
+ 23, 23, 23, 23, 23, 23, 23, 23,
220
+ 23, 23, 23, 23, 23, 23, 23, 23,
221
+ 23, 23, 23, 23, 23, 23, 23, 23,
222
+ 23, 23, 23, 23, 23, 23, 23, 23,
223
+ 23, 23, 23, 23, 23, 23, 23, 23,
224
+ 23, 23, 23, 23, 23, 23, 23, 23,
225
+ 23, 23, 23, 23, 23, 23, 23, 23,
226
+ 25, 23, 36, 36, 36, 36, 36, 23,
227
+ 23, 23, 23, 23, 23, 23, 23, 23,
228
+ 23, 23, 23, 23, 23, 23, 23, 23,
229
+ 23, 36, 23, 24, 23, 23, 23, 23,
230
+ 23, 23, 23, 23, 23, 23, 37, 37,
231
+ 38, 37, 37, 37, 37, 37, 37, 37,
232
+ 37, 37, 37, 37, 23, 23, 23, 23,
233
+ 37, 23, 37, 37, 37, 37, 37, 37,
234
+ 37, 37, 37, 37, 37, 37, 37, 37,
235
+ 37, 37, 37, 37, 37, 37, 37, 37,
236
+ 37, 37, 37, 37, 23, 25, 23, 23,
237
+ 37, 23, 37, 37, 37, 37, 37, 37,
238
+ 37, 37, 37, 37, 37, 37, 37, 37,
239
+ 37, 37, 37, 37, 37, 37, 37, 37,
240
+ 37, 37, 37, 37, 23, 23, 39, 23,
241
+ 40, 40, 40, 40, 40, 23, 23, 23,
242
+ 23, 23, 23, 23, 23, 23, 23, 23,
243
+ 23, 23, 23, 23, 23, 23, 23, 40,
244
+ 23, 24, 23, 23, 23, 23, 23, 23,
245
+ 23, 23, 23, 23, 41, 41, 42, 41,
246
+ 41, 41, 41, 41, 41, 41, 41, 41,
247
+ 41, 41, 23, 23, 23, 23, 41, 23,
248
+ 41, 41, 41, 41, 41, 41, 41, 41,
249
+ 41, 41, 41, 41, 41, 41, 41, 41,
250
+ 41, 41, 41, 41, 41, 41, 41, 41,
251
+ 41, 41, 23, 25, 23, 23, 41, 23,
252
+ 41, 41, 41, 41, 41, 41, 41, 41,
253
+ 41, 41, 41, 41, 41, 41, 41, 41,
254
+ 41, 41, 41, 41, 41, 41, 41, 41,
255
+ 41, 41, 23, 23, 43, 23, 44, 44,
256
+ 44, 44, 44, 23, 23, 23, 23, 23,
257
+ 23, 23, 23, 23, 23, 23, 23, 23,
258
+ 23, 23, 23, 23, 23, 44, 23, 24,
259
+ 23, 23, 23, 23, 23, 23, 23, 23,
260
+ 23, 23, 45, 45, 23, 45, 45, 45,
261
+ 45, 45, 45, 45, 45, 45, 45, 45,
262
+ 23, 23, 46, 23, 45, 23, 45, 45,
263
+ 45, 45, 45, 45, 45, 45, 45, 45,
264
+ 45, 45, 45, 45, 45, 45, 45, 45,
265
+ 45, 45, 45, 45, 45, 45, 45, 45,
266
+ 23, 25, 23, 23, 45, 23, 45, 45,
267
+ 45, 45, 45, 45, 45, 45, 45, 45,
268
+ 45, 45, 45, 45, 45, 45, 45, 45,
269
+ 45, 45, 45, 45, 45, 45, 45, 45,
270
+ 23, 47, 47, 47, 47, 47, 23, 23,
271
+ 23, 23, 23, 23, 23, 23, 23, 23,
272
+ 23, 23, 23, 23, 23, 23, 23, 23,
273
+ 47, 23, 24, 23, 23, 23, 23, 23,
274
+ 23, 23, 23, 23, 23, 23, 23, 23,
275
+ 23, 23, 23, 23, 23, 23, 23, 23,
276
+ 23, 23, 23, 23, 23, 48, 23, 23,
277
+ 23, 23, 23, 23, 23, 23, 23, 23,
278
+ 23, 23, 23, 23, 23, 23, 23, 23,
279
+ 23, 23, 23, 23, 23, 23, 23, 23,
280
+ 23, 23, 23, 23, 25, 23, 48, 48,
281
+ 48, 48, 48, 23, 23, 23, 23, 23,
282
+ 23, 23, 23, 23, 23, 23, 23, 23,
283
+ 23, 23, 23, 23, 23, 48, 23, 49,
284
+ 23, 23, 23, 23, 50, 23, 23, 23,
285
+ 23, 23, 23, 23, 23, 23, 23, 23,
286
+ 23, 23, 23, 23, 23, 23, 23, 23,
287
+ 23, 23, 23, 23, 23, 23, 23, 23,
288
+ 23, 23, 23, 23, 23, 23, 23, 23,
289
+ 23, 23, 23, 23, 23, 23, 23, 23,
290
+ 23, 23, 23, 23, 23, 23, 23, 23,
291
+ 23, 25, 23, 51, 51, 51, 51, 51,
292
+ 20, 20, 20, 20, 20, 20, 20, 20,
293
+ 20, 20, 20, 20, 20, 20, 20, 20,
294
+ 20, 20, 51, 20, 21, 20, 20, 20,
295
+ 20, 20, 20, 20, 20, 20, 20, 52,
296
+ 52, 53, 52, 52, 52, 52, 52, 52,
297
+ 52, 52, 52, 52, 52, 20, 20, 20,
298
+ 20, 52, 20, 52, 52, 52, 52, 52,
299
+ 52, 52, 52, 52, 52, 52, 52, 52,
300
+ 52, 52, 52, 52, 52, 52, 52, 52,
301
+ 52, 52, 52, 52, 52, 20, 22, 20,
302
+ 20, 52, 20, 52, 52, 52, 52, 52,
303
+ 52, 52, 52, 52, 52, 52, 52, 52,
304
+ 52, 52, 52, 52, 52, 52, 52, 52,
305
+ 52, 52, 52, 52, 52, 20, 20, 54,
306
+ 20, 24, 23, 23, 23, 23, 23, 23,
307
+ 23, 23, 23, 23, 23, 23, 23, 23,
308
+ 23, 23, 23, 23, 23, 23, 23, 23,
309
+ 23, 23, 23, 23, 23, 23, 23, 23,
310
+ 23, 23, 23, 23, 23, 23, 23, 23,
311
+ 23, 23, 23, 23, 23, 23, 23, 23,
312
+ 23, 23, 23, 23, 23, 23, 23, 23,
313
+ 23, 23, 23, 25, 23, 23, 23, 23,
314
+ 23, 23, 23, 23, 23, 23, 23, 23,
315
+ 23, 23, 23, 23, 23, 23, 23, 23,
316
+ 23, 23, 23, 23, 23, 23, 23, 23,
317
+ 23, 23, 23, 23, 55, 23, 57, 56,
318
+ 56, 56, 56, 58, 56, 56, 56, 56,
319
+ 56, 56, 56, 56, 56, 56, 56, 56,
320
+ 56, 56, 56, 56, 56, 56, 56, 56,
321
+ 56, 56, 56, 56, 56, 56, 56, 56,
322
+ 56, 56, 56, 56, 56, 56, 56, 56,
323
+ 56, 56, 56, 56, 56, 56, 56, 56,
324
+ 56, 56, 56, 56, 56, 56, 56, 56,
325
+ 59, 56, 61, 60, 60, 60, 60, 35,
326
+ 60, 60, 60, 60, 60, 60, 60, 60,
327
+ 60, 60, 60, 60, 60, 60, 60, 60,
328
+ 60, 60, 60, 60, 60, 60, 60, 60,
329
+ 60, 60, 60, 60, 60, 60, 60, 60,
330
+ 60, 60, 60, 60, 60, 60, 60, 60,
331
+ 60, 60, 60, 60, 60, 60, 60, 60,
332
+ 60, 60, 60, 60, 62, 60, 64, 64,
333
+ 64, 64, 64, 63, 63, 63, 63, 63,
334
+ 63, 63, 63, 63, 63, 63, 63, 63,
335
+ 63, 63, 63, 63, 63, 64, 63, 63,
336
+ 63, 63, 63, 63, 24, 63, 63, 63,
337
+ 63, 63, 65, 65, 66, 65, 65, 65,
338
+ 65, 65, 65, 65, 65, 65, 65, 65,
339
+ 63, 63, 63, 63, 65, 63, 65, 65,
340
+ 65, 65, 65, 65, 65, 65, 65, 65,
341
+ 65, 65, 65, 65, 65, 65, 65, 65,
342
+ 65, 65, 65, 65, 65, 65, 65, 65,
343
+ 63, 67, 63, 63, 65, 63, 65, 65,
344
+ 65, 65, 65, 65, 65, 65, 65, 65,
345
+ 65, 65, 65, 65, 65, 65, 65, 65,
346
+ 65, 65, 65, 65, 65, 65, 65, 65,
347
+ 63, 63, 68, 63, 24, 63, 63, 63,
348
+ 63, 63, 63, 63, 63, 63, 63, 63,
349
+ 63, 63, 63, 63, 63, 63, 63, 63,
350
+ 63, 63, 63, 63, 63, 63, 63, 63,
351
+ 63, 63, 63, 63, 63, 63, 63, 63,
352
+ 63, 63, 63, 63, 63, 63, 63, 63,
353
+ 63, 63, 63, 63, 63, 63, 63, 63,
354
+ 63, 67, 63, 61, 63, 63, 63, 63,
355
+ 63, 63, 63, 63, 63, 63, 63, 63,
356
+ 63, 63, 63, 63, 63, 63, 63, 63,
357
+ 63, 63, 63, 63, 63, 63, 63, 63,
358
+ 63, 63, 63, 63, 63, 63, 63, 63,
359
+ 63, 63, 63, 63, 63, 63, 63, 63,
360
+ 63, 63, 63, 63, 63, 63, 63, 63,
361
+ 67, 63, 69, 69, 69, 69, 69, 63,
362
+ 63, 63, 63, 63, 63, 63, 63, 63,
363
+ 63, 63, 63, 63, 63, 63, 63, 63,
364
+ 63, 69, 63, 63, 63, 63, 63, 63,
365
+ 24, 63, 63, 63, 63, 63, 70, 70,
366
+ 71, 70, 70, 70, 70, 70, 70, 70,
367
+ 70, 70, 70, 70, 63, 63, 63, 63,
368
+ 70, 63, 70, 70, 70, 70, 70, 70,
369
+ 70, 70, 70, 70, 70, 70, 70, 70,
370
+ 70, 70, 70, 70, 70, 70, 70, 70,
371
+ 70, 70, 70, 70, 63, 67, 63, 63,
372
+ 70, 63, 70, 70, 70, 70, 70, 70,
373
+ 70, 70, 70, 70, 70, 70, 70, 70,
374
+ 70, 70, 70, 70, 70, 70, 70, 70,
375
+ 70, 70, 70, 70, 63, 63, 72, 63,
376
+ 73, 73, 73, 73, 73, 63, 63, 63,
377
+ 63, 63, 63, 63, 63, 63, 63, 63,
378
+ 63, 63, 63, 63, 63, 63, 63, 73,
379
+ 63, 63, 63, 63, 63, 63, 24, 63,
380
+ 63, 63, 63, 63, 74, 74, 63, 74,
381
+ 74, 74, 74, 74, 74, 74, 74, 74,
382
+ 74, 74, 63, 63, 75, 63, 74, 63,
383
+ 74, 74, 74, 74, 74, 74, 74, 74,
384
+ 74, 74, 74, 74, 74, 74, 74, 74,
385
+ 74, 74, 74, 74, 74, 74, 74, 74,
386
+ 74, 74, 63, 67, 63, 63, 74, 63,
387
+ 74, 74, 74, 74, 74, 74, 74, 74,
388
+ 74, 74, 74, 74, 74, 74, 74, 74,
389
+ 74, 74, 74, 74, 74, 74, 74, 74,
390
+ 74, 74, 63, 76, 76, 76, 76, 76,
391
+ 63, 63, 63, 63, 63, 63, 63, 63,
392
+ 63, 63, 63, 63, 63, 63, 63, 63,
393
+ 63, 63, 76, 63, 63, 63, 63, 63,
394
+ 63, 24, 63, 63, 63, 63, 63, 63,
395
+ 63, 63, 63, 63, 63, 63, 63, 63,
396
+ 63, 63, 63, 63, 63, 63, 63, 77,
397
+ 63, 63, 63, 63, 63, 63, 63, 63,
398
+ 63, 63, 63, 63, 63, 63, 63, 63,
399
+ 63, 63, 63, 63, 63, 63, 63, 63,
400
+ 63, 63, 63, 63, 63, 63, 67, 63,
401
+ 77, 77, 77, 77, 77, 63, 63, 63,
402
+ 63, 63, 63, 63, 63, 63, 63, 63,
403
+ 63, 63, 63, 63, 63, 63, 63, 77,
404
+ 63, 78, 63, 63, 63, 63, 79, 63,
405
+ 63, 63, 63, 63, 63, 63, 63, 63,
406
+ 63, 63, 63, 63, 63, 63, 63, 63,
407
+ 63, 63, 63, 63, 63, 63, 63, 63,
408
+ 63, 63, 63, 63, 63, 63, 63, 63,
409
+ 63, 63, 63, 63, 63, 63, 63, 63,
410
+ 63, 63, 63, 63, 63, 63, 63, 63,
411
+ 63, 63, 63, 67, 63, 80, 56, 56,
412
+ 56, 56, 58, 56, 56, 56, 56, 56,
413
+ 56, 56, 56, 56, 56, 56, 56, 56,
414
+ 56, 56, 56, 56, 56, 56, 56, 56,
415
+ 56, 56, 56, 56, 56, 56, 56, 56,
416
+ 56, 56, 56, 56, 56, 56, 56, 56,
417
+ 56, 56, 56, 56, 56, 56, 56, 56,
418
+ 56, 56, 56, 56, 56, 56, 56, 59,
419
+ 56, 81, 60, 60, 60, 60, 81, 60,
420
+ 60, 60, 60, 60, 60, 60, 60, 60,
421
+ 60, 60, 60, 60, 60, 60, 60, 60,
422
+ 60, 60, 60, 60, 60, 60, 60, 60,
423
+ 60, 60, 60, 60, 60, 60, 60, 60,
424
+ 60, 60, 60, 60, 60, 60, 60, 60,
425
+ 60, 60, 60, 60, 60, 60, 60, 60,
426
+ 60, 60, 60, 62, 60, 82, 82, 82,
427
+ 82, 82, 60, 60, 60, 60, 60, 60,
428
+ 60, 60, 60, 60, 60, 60, 60, 60,
429
+ 60, 60, 60, 60, 82, 60, 61, 60,
430
+ 60, 60, 60, 35, 60, 60, 60, 60,
431
+ 60, 83, 83, 84, 83, 83, 83, 83,
432
+ 83, 83, 83, 83, 83, 83, 83, 60,
433
+ 60, 60, 60, 83, 60, 83, 83, 83,
434
+ 83, 83, 83, 83, 83, 83, 83, 83,
435
+ 83, 83, 83, 83, 83, 83, 83, 83,
436
+ 83, 83, 83, 83, 83, 83, 83, 60,
437
+ 62, 60, 60, 83, 60, 83, 83, 83,
438
+ 83, 83, 83, 83, 83, 83, 83, 83,
439
+ 83, 83, 83, 83, 83, 83, 83, 83,
440
+ 83, 83, 83, 83, 83, 83, 83, 60,
441
+ 60, 85, 60, 86, 86, 86, 86, 86,
442
+ 60, 60, 60, 60, 60, 60, 60, 60,
443
+ 60, 60, 60, 60, 60, 60, 60, 60,
444
+ 60, 60, 86, 60, 61, 60, 60, 60,
445
+ 60, 35, 60, 60, 60, 60, 60, 87,
446
+ 87, 88, 87, 87, 87, 87, 87, 87,
447
+ 87, 87, 87, 87, 87, 60, 60, 60,
448
+ 60, 87, 60, 87, 87, 87, 87, 87,
449
+ 87, 87, 87, 87, 87, 87, 87, 87,
450
+ 87, 87, 87, 87, 87, 87, 87, 87,
451
+ 87, 87, 87, 87, 87, 60, 62, 60,
452
+ 60, 87, 60, 87, 87, 87, 87, 87,
453
+ 87, 87, 87, 87, 87, 87, 87, 87,
454
+ 87, 87, 87, 87, 87, 87, 87, 87,
455
+ 87, 87, 87, 87, 87, 60, 60, 89,
456
+ 60, 90, 90, 90, 90, 90, 60, 60,
457
+ 60, 60, 60, 60, 60, 60, 60, 60,
458
+ 60, 60, 60, 60, 60, 60, 60, 60,
459
+ 90, 60, 61, 60, 60, 60, 60, 35,
460
+ 60, 60, 60, 60, 60, 91, 91, 60,
461
+ 91, 91, 91, 91, 91, 91, 91, 91,
462
+ 91, 91, 91, 60, 60, 92, 60, 91,
463
+ 60, 91, 91, 91, 91, 91, 91, 91,
464
+ 91, 91, 91, 91, 91, 91, 91, 91,
465
+ 91, 91, 91, 91, 91, 91, 91, 91,
466
+ 91, 91, 91, 60, 62, 60, 60, 91,
467
+ 60, 91, 91, 91, 91, 91, 91, 91,
468
+ 91, 91, 91, 91, 91, 91, 91, 91,
469
+ 91, 91, 91, 91, 91, 91, 91, 91,
470
+ 91, 91, 91, 60, 93, 93, 93, 93,
471
+ 93, 60, 60, 60, 60, 60, 60, 60,
472
+ 60, 60, 60, 60, 60, 60, 60, 60,
473
+ 60, 60, 60, 93, 60, 61, 60, 60,
474
+ 60, 60, 35, 60, 60, 60, 60, 60,
475
+ 60, 60, 60, 60, 60, 60, 60, 60,
476
+ 60, 60, 60, 60, 60, 60, 60, 60,
477
+ 94, 60, 60, 60, 60, 60, 60, 60,
478
+ 60, 60, 60, 60, 60, 60, 60, 60,
479
+ 60, 60, 60, 60, 60, 60, 60, 60,
480
+ 60, 60, 60, 60, 60, 60, 60, 62,
481
+ 60, 94, 94, 94, 94, 94, 60, 60,
482
+ 60, 60, 60, 60, 60, 60, 60, 60,
483
+ 60, 60, 60, 60, 60, 60, 60, 60,
484
+ 94, 60, 95, 60, 60, 60, 60, 96,
485
+ 60, 60, 60, 60, 60, 60, 60, 60,
486
+ 60, 60, 60, 60, 60, 60, 60, 60,
487
+ 60, 60, 60, 60, 60, 60, 60, 60,
488
+ 60, 60, 60, 60, 60, 60, 60, 60,
489
+ 60, 60, 60, 60, 60, 60, 60, 60,
490
+ 60, 60, 60, 60, 60, 60, 60, 60,
491
+ 60, 60, 60, 60, 62, 60, 97, 97,
492
+ 97, 97, 97, 56, 56, 56, 56, 56,
493
+ 56, 56, 56, 56, 56, 56, 56, 56,
494
+ 56, 56, 56, 56, 56, 97, 56, 80,
495
+ 56, 56, 56, 56, 58, 56, 56, 56,
496
+ 56, 56, 98, 98, 99, 98, 98, 98,
497
+ 98, 98, 98, 98, 98, 98, 98, 98,
498
+ 56, 56, 56, 56, 98, 56, 98, 98,
499
+ 98, 98, 98, 98, 98, 98, 98, 98,
500
+ 98, 98, 98, 98, 98, 98, 98, 98,
501
+ 98, 98, 98, 98, 98, 98, 98, 98,
502
+ 56, 59, 56, 56, 98, 56, 98, 98,
503
+ 98, 98, 98, 98, 98, 98, 98, 98,
504
+ 98, 98, 98, 98, 98, 98, 98, 98,
505
+ 98, 98, 98, 98, 98, 98, 98, 98,
506
+ 56, 56, 100, 56, 61, 60, 60, 60,
507
+ 60, 35, 60, 60, 60, 60, 60, 60,
508
+ 60, 60, 60, 60, 60, 60, 60, 60,
509
+ 60, 60, 60, 60, 60, 60, 60, 60,
510
+ 60, 60, 60, 60, 60, 60, 60, 60,
511
+ 60, 60, 60, 60, 60, 60, 60, 60,
512
+ 60, 60, 60, 60, 60, 60, 60, 60,
513
+ 60, 60, 60, 60, 60, 60, 62, 60,
514
+ 60, 60, 60, 60, 60, 60, 60, 60,
515
+ 60, 60, 60, 60, 60, 60, 60, 60,
516
+ 60, 60, 60, 60, 60, 60, 60, 60,
517
+ 60, 60, 60, 60, 60, 60, 60, 101,
518
+ 60, 97, 97, 97, 97, 97, 56, 56,
519
+ 56, 56, 56, 56, 56, 56, 56, 56,
520
+ 56, 56, 56, 56, 56, 56, 56, 56,
521
+ 97, 56, 57, 56, 56, 56, 56, 58,
522
+ 56, 56, 56, 56, 56, 98, 98, 99,
523
+ 98, 98, 98, 98, 98, 98, 98, 98,
524
+ 98, 98, 98, 56, 56, 56, 56, 98,
525
+ 56, 98, 98, 98, 98, 98, 98, 98,
526
+ 98, 98, 98, 98, 98, 98, 98, 98,
527
+ 98, 98, 98, 98, 98, 98, 98, 98,
528
+ 98, 98, 98, 56, 59, 56, 56, 98,
529
+ 56, 98, 98, 98, 98, 98, 98, 98,
530
+ 98, 98, 98, 98, 98, 98, 98, 98,
531
+ 98, 98, 98, 98, 98, 98, 98, 98,
532
+ 98, 98, 98, 56, 56, 100, 56, 103,
533
+ 103, 103, 103, 103, 102, 102, 102, 102,
534
+ 102, 102, 102, 102, 102, 102, 102, 102,
535
+ 102, 102, 102, 102, 102, 102, 103, 102,
536
+ 102, 102, 102, 102, 102, 21, 102, 102,
537
+ 102, 102, 102, 104, 104, 105, 104, 104,
538
+ 104, 104, 104, 104, 104, 104, 104, 104,
539
+ 104, 102, 102, 102, 102, 104, 102, 104,
540
+ 104, 104, 104, 104, 104, 104, 104, 104,
541
+ 104, 104, 104, 104, 104, 104, 104, 104,
542
+ 104, 104, 104, 104, 104, 104, 104, 104,
543
+ 104, 102, 106, 102, 102, 104, 102, 104,
544
+ 104, 104, 104, 104, 104, 104, 104, 104,
545
+ 104, 104, 104, 104, 104, 104, 104, 104,
546
+ 104, 104, 104, 104, 104, 104, 104, 104,
547
+ 104, 102, 102, 107, 102, 24, 63, 63,
548
+ 63, 63, 63, 63, 63, 63, 63, 63,
549
+ 63, 63, 63, 63, 63, 63, 63, 63,
550
+ 63, 63, 63, 63, 63, 63, 63, 63,
551
+ 63, 63, 63, 63, 63, 63, 63, 63,
552
+ 63, 63, 63, 63, 63, 63, 63, 63,
553
+ 63, 63, 63, 63, 63, 63, 63, 63,
554
+ 63, 63, 67, 63, 63, 63, 63, 63,
555
+ 63, 63, 63, 63, 63, 63, 63, 63,
556
+ 63, 63, 63, 63, 63, 63, 63, 63,
557
+ 63, 63, 63, 63, 63, 63, 63, 63,
558
+ 63, 63, 63, 108, 63, 21, 102, 102,
559
+ 102, 102, 102, 102, 102, 102, 102, 102,
560
+ 102, 102, 102, 102, 102, 102, 102, 102,
561
+ 102, 102, 102, 102, 102, 102, 102, 102,
562
+ 102, 102, 102, 102, 102, 102, 102, 102,
563
+ 102, 102, 102, 102, 102, 102, 102, 102,
564
+ 102, 102, 102, 102, 102, 102, 102, 102,
565
+ 102, 102, 106, 102, 109, 109, 0, 109,
566
+ 109, 109, 109, 109, 109, 109, 109, 109,
567
+ 109, 109, 0, 0, 0, 0, 109, 0,
568
+ 109, 109, 109, 109, 109, 109, 109, 109,
569
+ 109, 109, 109, 109, 109, 109, 109, 109,
570
+ 109, 109, 109, 109, 109, 109, 109, 109,
571
+ 109, 109, 0, 0, 0, 0, 109, 0,
572
+ 109, 109, 109, 109, 109, 109, 109, 109,
573
+ 109, 109, 109, 109, 109, 109, 109, 109,
574
+ 109, 109, 109, 109, 109, 109, 109, 109,
575
+ 109, 109, 0, 110, 110, 110, 110, 110,
576
+ 0, 0, 0, 0, 0, 0, 0, 0,
577
+ 0, 0, 0, 0, 0, 0, 0, 0,
578
+ 0, 0, 110, 0, 0, 0, 0, 0,
579
+ 0, 0, 0, 0, 0, 0, 0, 111,
580
+ 111, 0, 111, 111, 111, 111, 111, 111,
581
+ 111, 111, 111, 111, 111, 0, 0, 0,
582
+ 0, 111, 0, 111, 111, 111, 111, 111,
583
+ 111, 111, 111, 111, 111, 111, 111, 111,
584
+ 111, 111, 111, 111, 111, 111, 111, 111,
585
+ 111, 111, 111, 111, 111, 0, 0, 0,
586
+ 0, 111, 0, 111, 111, 111, 111, 111,
587
+ 111, 111, 111, 111, 111, 111, 111, 111,
588
+ 111, 111, 111, 111, 111, 111, 111, 111,
589
+ 111, 111, 111, 111, 111, 0, 0, 112,
590
+ 0, 113, 113, 113, 113, 113, 0, 0,
591
+ 0, 0, 0, 0, 0, 0, 0, 0,
592
+ 0, 0, 0, 0, 0, 0, 0, 0,
593
+ 113, 0, 0, 0, 0, 0, 0, 0,
594
+ 0, 0, 0, 0, 0, 0, 0, 0,
595
+ 0, 0, 0, 0, 0, 0, 0, 0,
596
+ 0, 0, 0, 0, 0, 0, 0, 0,
597
+ 0, 0, 0, 0, 0, 0, 0, 0,
598
+ 0, 0, 0, 0, 0, 0, 0, 0,
599
+ 0, 0, 0, 0, 0, 0, 0, 0,
600
+ 0, 0, 0, 0, 0, 0, 0, 0,
601
+ 0, 0, 0, 0, 0, 0, 0, 0,
602
+ 0, 0, 0, 0, 0, 0, 0, 0,
603
+ 0, 0, 0, 0, 0, 0, 0, 0,
604
+ 0, 0, 0, 0, 0, 114, 0, 115,
605
+ 117, 116, 1, 1, 1, 1, 1, 118,
606
+ 118, 118, 118, 118, 118, 118, 118, 118,
607
+ 118, 118, 118, 118, 118, 118, 118, 118,
608
+ 118, 1, 118, 118, 118, 118, 118, 118,
609
+ 118, 118, 118, 118, 118, 118, 2, 2,
610
+ 3, 2, 2, 2, 2, 2, 2, 2,
611
+ 2, 2, 2, 2, 118, 118, 118, 118,
612
+ 2, 118, 2, 2, 2, 2, 2, 2,
613
+ 2, 2, 2, 2, 2, 2, 2, 2,
614
+ 2, 2, 2, 2, 2, 2, 2, 2,
615
+ 2, 2, 2, 2, 118, 118, 118, 118,
616
+ 2, 118, 2, 2, 2, 2, 2, 2,
617
+ 2, 2, 2, 2, 2, 2, 2, 2,
618
+ 2, 2, 2, 2, 2, 2, 2, 2,
619
+ 2, 2, 2, 2, 118, 119, 120, 24,
620
+ 23, 23, 23, 23, 23, 23, 23, 23,
621
+ 23, 23, 23, 23, 23, 23, 23, 23,
622
+ 23, 23, 23, 23, 23, 23, 23, 23,
623
+ 23, 23, 23, 23, 23, 23, 23, 23,
624
+ 23, 23, 23, 23, 23, 23, 23, 23,
625
+ 23, 23, 23, 23, 23, 23, 23, 23,
626
+ 23, 23, 23, 23, 23, 23, 23, 23,
627
+ 23, 25, 23, 24, 23, 23, 23, 23,
628
+ 23, 23, 23, 23, 23, 23, 23, 23,
629
+ 23, 23, 23, 23, 23, 23, 23, 23,
630
+ 23, 23, 23, 23, 23, 23, 23, 23,
631
+ 23, 23, 23, 23, 23, 23, 23, 23,
632
+ 23, 23, 23, 23, 23, 23, 23, 23,
633
+ 23, 23, 23, 23, 23, 23, 23, 23,
634
+ 23, 23, 23, 23, 23, 25, 23, 61,
635
+ 60, 60, 60, 60, 35, 60, 60, 60,
636
+ 60, 60, 60, 60, 60, 60, 60, 60,
637
+ 60, 60, 60, 60, 60, 60, 60, 60,
638
+ 60, 60, 60, 60, 60, 60, 60, 60,
639
+ 60, 60, 60, 60, 60, 60, 60, 60,
640
+ 60, 60, 60, 60, 60, 60, 60, 60,
641
+ 60, 60, 60, 60, 60, 60, 60, 60,
642
+ 60, 62, 60, 61, 60, 60, 60, 60,
643
+ 35, 60, 60, 60, 60, 60, 60, 60,
644
+ 60, 60, 60, 60, 60, 60, 60, 60,
645
+ 60, 60, 60, 60, 60, 60, 60, 60,
646
+ 60, 60, 60, 60, 60, 60, 60, 60,
647
+ 60, 60, 60, 60, 60, 60, 60, 60,
648
+ 60, 60, 60, 60, 60, 60, 60, 60,
649
+ 60, 60, 60, 60, 60, 62, 60, 24,
650
+ 63, 63, 63, 63, 63, 63, 63, 63,
651
+ 63, 63, 63, 63, 63, 63, 63, 63,
652
+ 63, 63, 63, 63, 63, 63, 63, 63,
653
+ 63, 63, 63, 63, 63, 63, 63, 63,
654
+ 63, 63, 63, 63, 63, 63, 63, 63,
655
+ 63, 63, 63, 63, 63, 63, 63, 63,
656
+ 63, 63, 63, 63, 67, 63, 24, 63,
657
+ 63, 63, 63, 63, 63, 63, 63, 63,
658
+ 63, 63, 63, 63, 63, 63, 63, 63,
659
+ 63, 63, 63, 63, 63, 63, 63, 63,
660
+ 63, 63, 63, 63, 63, 63, 63, 63,
661
+ 63, 63, 63, 63, 63, 63, 63, 63,
662
+ 63, 63, 63, 63, 63, 63, 63, 63,
663
+ 63, 63, 63, 67, 63, 121, 0
664
+ ]
665
+
666
+ class << self
667
+ attr_accessor :_parser_trans_targs
668
+ private :_parser_trans_targs, :_parser_trans_targs=
669
+ end
670
+ self._parser_trans_targs = [
671
+ 46, 1, 2, 42, 3, 2, 11, 49,
672
+ 3, 4, 11, 49, 46, 5, 4, 6,
673
+ 5, 6, 7, 41, 8, 9, 12, 8,
674
+ 9, 12, 10, 4, 11, 49, 10, 4,
675
+ 11, 49, 48, 13, 14, 15, 19, 51,
676
+ 14, 15, 19, 51, 16, 15, 17, 16,
677
+ 17, 18, 20, 14, 15, 19, 51, 50,
678
+ 21, 22, 13, 30, 21, 22, 30, 23,
679
+ 25, 26, 40, 24, 55, 25, 26, 40,
680
+ 55, 27, 26, 28, 27, 28, 29, 39,
681
+ 22, 31, 32, 33, 37, 53, 32, 33,
682
+ 37, 53, 34, 33, 35, 34, 35, 36,
683
+ 38, 32, 33, 37, 53, 52, 23, 25,
684
+ 26, 40, 24, 55, 54, 43, 44, 43,
685
+ 56, 44, 56, 0, 46, 47, 46, 46,
686
+ 46, 46
687
+ ]
688
+
689
+ class << self
690
+ attr_accessor :_parser_trans_actions
691
+ private :_parser_trans_actions, :_parser_trans_actions=
692
+ end
693
+ self._parser_trans_actions = [
694
+ 1, 0, 2, 0, 3, 0, 3, 3,
695
+ 0, 4, 0, 0, 5, 6, 0, 6,
696
+ 0, 0, 0, 0, 7, 8, 7, 0,
697
+ 9, 0, 10, 11, 12, 12, 0, 13,
698
+ 14, 14, 0, 9, 10, 11, 12, 15,
699
+ 0, 13, 14, 16, 6, 0, 6, 0,
700
+ 0, 9, 0, 17, 18, 19, 20, 21,
701
+ 7, 22, 8, 7, 0, 9, 0, 0,
702
+ 10, 11, 12, 0, 15, 0, 13, 14,
703
+ 16, 6, 0, 6, 0, 0, 0, 9,
704
+ 8, 9, 10, 11, 12, 15, 0, 13,
705
+ 14, 16, 6, 0, 6, 0, 0, 9,
706
+ 9, 17, 18, 19, 20, 21, 7, 17,
707
+ 18, 19, 7, 20, 21, 2, 3, 0,
708
+ 3, 0, 0, 0, 25, 26, 27, 28,
709
+ 29, 30
710
+ ]
711
+
712
+ class << self
713
+ attr_accessor :_parser_to_state_actions
714
+ private :_parser_to_state_actions, :_parser_to_state_actions=
715
+ end
716
+ self._parser_to_state_actions = [
717
+ 0, 0, 0, 0, 0, 0, 0, 0,
718
+ 0, 0, 0, 0, 0, 0, 0, 0,
719
+ 0, 0, 0, 0, 0, 0, 0, 0,
720
+ 0, 0, 0, 0, 0, 0, 0, 0,
721
+ 0, 0, 0, 0, 0, 0, 0, 0,
722
+ 0, 0, 0, 0, 0, 23, 23, 0,
723
+ 0, 0, 0, 0, 0, 0, 0, 0,
724
+ 0
725
+ ]
726
+
727
+ class << self
728
+ attr_accessor :_parser_from_state_actions
729
+ private :_parser_from_state_actions, :_parser_from_state_actions=
730
+ end
731
+ self._parser_from_state_actions = [
732
+ 0, 0, 0, 0, 0, 0, 0, 0,
733
+ 0, 0, 0, 0, 0, 0, 0, 0,
734
+ 0, 0, 0, 0, 0, 0, 0, 0,
735
+ 0, 0, 0, 0, 0, 0, 0, 0,
736
+ 0, 0, 0, 0, 0, 0, 0, 0,
737
+ 0, 0, 0, 0, 0, 0, 24, 0,
738
+ 0, 0, 0, 0, 0, 0, 0, 0,
739
+ 0
740
+ ]
741
+
742
+ class << self
743
+ attr_accessor :_parser_eof_trans
744
+ private :_parser_eof_trans, :_parser_eof_trans=
745
+ end
746
+ self._parser_eof_trans = [
747
+ 0, 1, 1, 1, 13, 13, 13, 13,
748
+ 13, 13, 13, 13, 13, 13, 13, 13,
749
+ 13, 13, 13, 13, 13, 13, 13, 13,
750
+ 13, 13, 13, 13, 13, 13, 13, 13,
751
+ 13, 13, 13, 13, 13, 13, 13, 13,
752
+ 13, 13, 1, 1, 1, 0, 0, 119,
753
+ 120, 121, 120, 121, 120, 121, 120, 121,
754
+ 122
755
+ ]
756
+
757
+ class << self
758
+ attr_accessor :parser_start
759
+ end
760
+ self.parser_start = 46;
761
+ class << self
762
+ attr_accessor :parser_first_final
763
+ end
764
+ self.parser_first_final = 46;
765
+ class << self
766
+ attr_accessor :parser_error
767
+ end
768
+ self.parser_error = 0;
769
+
770
+ class << self
771
+ attr_accessor :parser_en_Closeout
772
+ end
773
+ self.parser_en_Closeout = 45;
774
+ class << self
775
+ attr_accessor :parser_en_main
776
+ end
777
+ self.parser_en_main = 46;
778
+
779
+
780
+ # line 120 "squiggle_scanner.rl"
781
+
782
+ # line 783 "squiggle_scanner.rb"
783
+ begin
784
+ p ||= 0
785
+ pe ||= data.length
786
+ cs = parser_start
787
+ ts = nil
788
+ te = nil
789
+ act = 0
790
+ end
791
+
792
+ # line 121 "squiggle_scanner.rl"
793
+
794
+ # line 795 "squiggle_scanner.rb"
795
+ begin
796
+ testEof = false
797
+ _slen, _trans, _keys, _inds, _acts, _nacts = nil
798
+ _goto_level = 0
799
+ _resume = 10
800
+ _eof_trans = 15
801
+ _again = 20
802
+ _test_eof = 30
803
+ _out = 40
804
+ while true
805
+ if _goto_level <= 0
806
+ if p == pe
807
+ _goto_level = _test_eof
808
+ next
809
+ end
810
+ if cs == 0
811
+ _goto_level = _out
812
+ next
813
+ end
814
+ end
815
+ if _goto_level <= _resume
816
+ case _parser_from_state_actions[cs]
817
+ when 24 then
818
+ # line 1 "NONE"
819
+ begin
820
+ ts = p
821
+ end
822
+ # line 823 "squiggle_scanner.rb"
823
+ end
824
+ _keys = cs << 1
825
+ _inds = _parser_index_offsets[cs]
826
+ _slen = _parser_key_spans[cs]
827
+ _trans = if ( _slen > 0 &&
828
+ _parser_trans_keys[_keys] <= data[p] &&
829
+ data[p] <= _parser_trans_keys[_keys + 1]
830
+ ) then
831
+ _parser_indicies[ _inds + data[p] - _parser_trans_keys[_keys] ]
832
+ else
833
+ _parser_indicies[ _inds + _slen ]
834
+ end
835
+ end
836
+ if _goto_level <= _eof_trans
837
+ cs = _parser_trans_targs[_trans]
838
+ if _parser_trans_actions[_trans] != 0
839
+ case _parser_trans_actions[_trans]
840
+ when 2 then
841
+ # line 12 "squiggle_scanner.rl"
842
+ begin
843
+ mark_stg = p end
844
+ when 3 then
845
+ # line 13 "squiggle_scanner.rl"
846
+ begin
847
+ @starttag = data[mark_stg..p-1] end
848
+ when 10 then
849
+ # line 14 "squiggle_scanner.rl"
850
+ begin
851
+ mark_attr = p end
852
+ when 14 then
853
+ # line 15 "squiggle_scanner.rl"
854
+ begin
855
+
856
+ @attrs[@nat] = @vat
857
+ end
858
+ when 4 then
859
+ # line 24 "squiggle_scanner.rl"
860
+ begin
861
+ mark_nat = p end
862
+ when 6 then
863
+ # line 25 "squiggle_scanner.rl"
864
+ begin
865
+ @nat = data[mark_nat..p-1] end
866
+ when 7 then
867
+ # line 26 "squiggle_scanner.rl"
868
+ begin
869
+ mark_vat = p end
870
+ when 9 then
871
+ # line 27 "squiggle_scanner.rl"
872
+ begin
873
+ @vat = data[mark_vat..p-1] end
874
+ when 25 then
875
+ # line 80 "squiggle_scanner.rl"
876
+ begin
877
+ te = p+1
878
+ begin
879
+ @nodes.last << data[p]
880
+ @tagstart = p
881
+ end
882
+ end
883
+ when 27 then
884
+ # line 80 "squiggle_scanner.rl"
885
+ begin
886
+ te = p
887
+ p = p - 1; begin
888
+ @nodes.last << data[p]
889
+ @tagstart = p
890
+ end
891
+ end
892
+ when 1 then
893
+ # line 80 "squiggle_scanner.rl"
894
+ begin
895
+ begin p = ((te))-1; end
896
+ begin
897
+ @nodes.last << data[p]
898
+ @tagstart = p
899
+ end
900
+ end
901
+ when 5 then
902
+ # line 1 "NONE"
903
+ begin
904
+ case act
905
+ when 1 then
906
+ begin begin p = ((te))-1; end
907
+
908
+ tag = {:prefix=>@prefix, :name=>@starttag, :flavor => @flavor, :attrs => @attrs}
909
+ @prefix = nil
910
+ @name = nil
911
+ @flavor = :tasteless
912
+ @attrs = {}
913
+ @nodes << tag << ''
914
+ begin
915
+ p += 1
916
+ _goto_level = _out
917
+ next
918
+ end
919
+
920
+ end
921
+ when 2 then
922
+ begin begin p = ((te))-1; end
923
+
924
+ @nodes.last << data[p]
925
+ @tagstart = p
926
+ end
927
+ end
928
+ end
929
+ when 12 then
930
+ # line 14 "squiggle_scanner.rl"
931
+ begin
932
+ mark_attr = p end
933
+ # line 15 "squiggle_scanner.rl"
934
+ begin
935
+
936
+ @attrs[@nat] = @vat
937
+ end
938
+ when 13 then
939
+ # line 15 "squiggle_scanner.rl"
940
+ begin
941
+
942
+ @attrs[@nat] = @vat
943
+ end
944
+ # line 24 "squiggle_scanner.rl"
945
+ begin
946
+ mark_nat = p end
947
+ when 17 then
948
+ # line 26 "squiggle_scanner.rl"
949
+ begin
950
+ mark_vat = p end
951
+ # line 14 "squiggle_scanner.rl"
952
+ begin
953
+ mark_attr = p end
954
+ when 8 then
955
+ # line 26 "squiggle_scanner.rl"
956
+ begin
957
+ mark_vat = p end
958
+ # line 27 "squiggle_scanner.rl"
959
+ begin
960
+ @vat = data[mark_vat..p-1] end
961
+ when 22 then
962
+ # line 27 "squiggle_scanner.rl"
963
+ begin
964
+ @vat = data[mark_vat..p-1] end
965
+ # line 26 "squiggle_scanner.rl"
966
+ begin
967
+ mark_vat = p end
968
+ when 29 then
969
+ # line 29 "squiggle_scanner.rl"
970
+ begin
971
+ @flavor = :open end
972
+ # line 71 "squiggle_scanner.rl"
973
+ begin
974
+ te = p
975
+ p = p - 1; begin
976
+ tag = {:prefix=>@prefix, :name=>@starttag, :flavor => @flavor, :attrs => @attrs}
977
+ @prefix = nil
978
+ @name = nil
979
+ @flavor = :tasteless
980
+ @attrs = {}
981
+ @nodes << tag << ''
982
+ begin
983
+ p += 1
984
+ _goto_level = _out
985
+ next
986
+ end
987
+
988
+ end
989
+ end
990
+ when 28 then
991
+ # line 30 "squiggle_scanner.rl"
992
+ begin
993
+ @flavor = :self end
994
+ # line 71 "squiggle_scanner.rl"
995
+ begin
996
+ te = p
997
+ p = p - 1; begin
998
+ tag = {:prefix=>@prefix, :name=>@starttag, :flavor => @flavor, :attrs => @attrs}
999
+ @prefix = nil
1000
+ @name = nil
1001
+ @flavor = :tasteless
1002
+ @attrs = {}
1003
+ @nodes << tag << ''
1004
+ begin
1005
+ p += 1
1006
+ _goto_level = _out
1007
+ next
1008
+ end
1009
+
1010
+ end
1011
+ end
1012
+ when 30 then
1013
+ # line 31 "squiggle_scanner.rl"
1014
+ begin
1015
+ @flavor = :close end
1016
+ # line 71 "squiggle_scanner.rl"
1017
+ begin
1018
+ te = p
1019
+ p = p - 1; begin
1020
+ tag = {:prefix=>@prefix, :name=>@starttag, :flavor => @flavor, :attrs => @attrs}
1021
+ @prefix = nil
1022
+ @name = nil
1023
+ @flavor = :tasteless
1024
+ @attrs = {}
1025
+ @nodes << tag << ''
1026
+ begin
1027
+ p += 1
1028
+ _goto_level = _out
1029
+ next
1030
+ end
1031
+
1032
+ end
1033
+ end
1034
+ when 21 then
1035
+ # line 1 "NONE"
1036
+ begin
1037
+ te = p+1
1038
+ end
1039
+ # line 71 "squiggle_scanner.rl"
1040
+ begin
1041
+ act = 1; end
1042
+ when 26 then
1043
+ # line 1 "NONE"
1044
+ begin
1045
+ te = p+1
1046
+ end
1047
+ # line 80 "squiggle_scanner.rl"
1048
+ begin
1049
+ act = 2; end
1050
+ when 11 then
1051
+ # line 14 "squiggle_scanner.rl"
1052
+ begin
1053
+ mark_attr = p end
1054
+ # line 15 "squiggle_scanner.rl"
1055
+ begin
1056
+
1057
+ @attrs[@nat] = @vat
1058
+ end
1059
+ # line 24 "squiggle_scanner.rl"
1060
+ begin
1061
+ mark_nat = p end
1062
+ when 19 then
1063
+ # line 26 "squiggle_scanner.rl"
1064
+ begin
1065
+ mark_vat = p end
1066
+ # line 14 "squiggle_scanner.rl"
1067
+ begin
1068
+ mark_attr = p end
1069
+ # line 15 "squiggle_scanner.rl"
1070
+ begin
1071
+
1072
+ @attrs[@nat] = @vat
1073
+ end
1074
+ when 16 then
1075
+ # line 1 "NONE"
1076
+ begin
1077
+ te = p+1
1078
+ end
1079
+ # line 15 "squiggle_scanner.rl"
1080
+ begin
1081
+
1082
+ @attrs[@nat] = @vat
1083
+ end
1084
+ # line 71 "squiggle_scanner.rl"
1085
+ begin
1086
+ act = 1; end
1087
+ when 18 then
1088
+ # line 26 "squiggle_scanner.rl"
1089
+ begin
1090
+ mark_vat = p end
1091
+ # line 14 "squiggle_scanner.rl"
1092
+ begin
1093
+ mark_attr = p end
1094
+ # line 15 "squiggle_scanner.rl"
1095
+ begin
1096
+
1097
+ @attrs[@nat] = @vat
1098
+ end
1099
+ # line 24 "squiggle_scanner.rl"
1100
+ begin
1101
+ mark_nat = p end
1102
+ when 15 then
1103
+ # line 1 "NONE"
1104
+ begin
1105
+ te = p+1
1106
+ end
1107
+ # line 14 "squiggle_scanner.rl"
1108
+ begin
1109
+ mark_attr = p end
1110
+ # line 15 "squiggle_scanner.rl"
1111
+ begin
1112
+
1113
+ @attrs[@nat] = @vat
1114
+ end
1115
+ # line 71 "squiggle_scanner.rl"
1116
+ begin
1117
+ act = 1; end
1118
+ when 20 then
1119
+ # line 1 "NONE"
1120
+ begin
1121
+ te = p+1
1122
+ end
1123
+ # line 26 "squiggle_scanner.rl"
1124
+ begin
1125
+ mark_vat = p end
1126
+ # line 14 "squiggle_scanner.rl"
1127
+ begin
1128
+ mark_attr = p end
1129
+ # line 15 "squiggle_scanner.rl"
1130
+ begin
1131
+
1132
+ @attrs[@nat] = @vat
1133
+ end
1134
+ # line 71 "squiggle_scanner.rl"
1135
+ begin
1136
+ act = 1; end
1137
+ # line 1138 "squiggle_scanner.rb"
1138
+ end
1139
+ end
1140
+ end
1141
+ if _goto_level <= _again
1142
+ case _parser_to_state_actions[cs]
1143
+ when 23 then
1144
+ # line 1 "NONE"
1145
+ begin
1146
+ ts = nil; end
1147
+ # line 1148 "squiggle_scanner.rb"
1148
+ end
1149
+
1150
+ if cs == 0
1151
+ _goto_level = _out
1152
+ next
1153
+ end
1154
+ p += 1
1155
+ if p != pe
1156
+ _goto_level = _resume
1157
+ next
1158
+ end
1159
+ end
1160
+ if _goto_level <= _test_eof
1161
+ if p == eof
1162
+ if _parser_eof_trans[cs] > 0
1163
+ _trans = _parser_eof_trans[cs] - 1;
1164
+ _goto_level = _eof_trans
1165
+ next;
1166
+ end
1167
+ end
1168
+
1169
+ end
1170
+ if _goto_level <= _out
1171
+ break
1172
+ end
1173
+ end
1174
+ end
1175
+
1176
+ # line 122 "squiggle_scanner.rl"
1177
+ return p
1178
+ end
1179
+ end
1180
+ end