ebnf 0.2.0 → 0.2.1

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.
@@ -4,51 +4,49 @@ module Branch
4
4
  START = :ebnf
5
5
 
6
6
  BRANCH = {
7
+ :alt => {
8
+ "(" => [:seq, :_alt_1],
9
+ :ENUM => [:seq, :_alt_1],
10
+ :HEX => [:seq, :_alt_1],
11
+ :O_ENUM => [:seq, :_alt_1],
12
+ :O_RANGE => [:seq, :_alt_1],
13
+ :RANGE => [:seq, :_alt_1],
14
+ :STRING1 => [:seq, :_alt_1],
15
+ :STRING2 => [:seq, :_alt_1],
16
+ },
7
17
  :_alt_1 => {
8
- "(" => [],
9
18
  ")" => [],
10
19
  "@pass" => [],
11
20
  "@terminals" => [],
12
21
  "[" => [],
13
22
  "|" => [:_alt_3],
14
- :ENUM => [],
15
- :HEX => [],
16
- :O_ENUM => [],
17
- :O_RANGE => [],
18
- :RANGE => [],
19
- :STRING1 => [],
20
- :STRING2 => [],
21
- :_empty => [],
22
23
  },
23
24
  :_alt_2 => {
24
- "(" => [],
25
25
  "|" => ["|", :seq],
26
- :ENUM => [],
27
- :HEX => [],
28
- :O_ENUM => [],
29
- :O_RANGE => [],
30
- :RANGE => [],
31
- :STRING1 => [],
32
- :STRING2 => [],
33
26
  },
34
27
  :_alt_3 => {
35
- "(" => [],
36
- ")" => [],
37
- "@pass" => [],
38
- "@terminals" => [],
39
- "[" => [],
40
28
  "|" => [:_alt_2, :_alt_1],
41
- :ENUM => [],
42
- :HEX => [],
43
- :O_ENUM => [],
44
- :O_RANGE => [],
45
- :RANGE => [],
46
- :STRING1 => [],
47
- :STRING2 => [],
29
+ },
30
+ :declaration => {
31
+ "@pass" => [:pass],
32
+ "@terminals" => ["@terminals"],
33
+ },
34
+ :diff => {
35
+ "(" => [:postfix, :_diff_1],
36
+ :ENUM => [:postfix, :_diff_1],
37
+ :HEX => [:postfix, :_diff_1],
38
+ :O_ENUM => [:postfix, :_diff_1],
39
+ :O_RANGE => [:postfix, :_diff_1],
40
+ :RANGE => [:postfix, :_diff_1],
41
+ :STRING1 => [:postfix, :_diff_1],
42
+ :STRING2 => [:postfix, :_diff_1],
48
43
  },
49
44
  :_diff_1 => {
50
45
  "(" => [],
46
+ ")" => [],
51
47
  "-" => [:_diff_3],
48
+ "@pass" => [],
49
+ "@terminals" => [],
52
50
  :ENUM => [],
53
51
  :HEX => [],
54
52
  :O_ENUM => [],
@@ -56,189 +54,115 @@ module Branch
56
54
  :RANGE => [],
57
55
  :STRING1 => [],
58
56
  :STRING2 => [],
59
- :_empty => [],
57
+ "[" => [],
58
+ "|" => [],
60
59
  },
61
60
  :_diff_2 => {
62
- "(" => [],
63
61
  "-" => ["-", :postfix],
64
- :ENUM => [],
65
- :HEX => [],
66
- :O_ENUM => [],
67
- :O_RANGE => [],
68
- :RANGE => [],
69
- :STRING1 => [],
70
- :STRING2 => [],
71
62
  },
72
63
  :_diff_3 => {
73
- "(" => [],
74
64
  "-" => [:_diff_2, :_diff_1],
75
- :ENUM => [],
76
- :HEX => [],
77
- :O_ENUM => [],
78
- :O_RANGE => [],
79
- :RANGE => [],
80
- :STRING1 => [],
81
- :STRING2 => [],
65
+ },
66
+ :ebnf => {
67
+ "@pass" => [:_ebnf_2],
68
+ "@terminals" => [:_ebnf_2],
69
+ "[" => [:_ebnf_2],
82
70
  },
83
71
  :_ebnf_1 => {
84
- "(" => [:declaration],
85
72
  "@pass" => [:declaration],
86
73
  "@terminals" => [:declaration],
87
74
  "[" => [:rule],
88
- :ENUM => [:declaration],
89
- :HEX => [:declaration],
90
- :O_ENUM => [:declaration],
91
- :O_RANGE => [:declaration],
92
- :RANGE => [:declaration],
93
- :STRING1 => [:declaration],
94
- :STRING2 => [:declaration],
95
75
  },
96
76
  :_ebnf_2 => {
97
- "(" => [:_ebnf_1, :ebnf],
98
77
  "@pass" => [:_ebnf_1, :ebnf],
99
78
  "@terminals" => [:_ebnf_1, :ebnf],
100
79
  "[" => [:_ebnf_1, :ebnf],
101
- :ENUM => [:_ebnf_1, :ebnf],
102
- :HEX => [:_ebnf_1, :ebnf],
103
- :O_ENUM => [:_ebnf_1, :ebnf],
104
- :O_RANGE => [:_ebnf_1, :ebnf],
105
- :RANGE => [:_ebnf_1, :ebnf],
106
- :STRING1 => [:_ebnf_1, :ebnf],
107
- :STRING2 => [:_ebnf_1, :ebnf],
108
- :_eof => [],
109
80
  },
110
- :_postfix_1 => {
111
- "(" => [],
112
- "-" => [],
113
- :ENUM => [],
114
- :HEX => [],
115
- :O_ENUM => [],
116
- :O_RANGE => [],
117
- :RANGE => [],
118
- :STRING1 => [],
119
- :STRING2 => [],
120
- :_empty => [],
121
- :_postfix_2 => [:_postfix_2],
81
+ :expression => {
82
+ "(" => [:alt],
83
+ :ENUM => [:alt],
84
+ :HEX => [:alt],
85
+ :O_ENUM => [:alt],
86
+ :O_RANGE => [:alt],
87
+ :RANGE => [:alt],
88
+ :STRING1 => [:alt],
89
+ :STRING2 => [:alt],
122
90
  },
123
- :_primary_1 => {
124
- "(" => ["(", :expression, ")"],
125
- :ENUM => [],
126
- :HEX => [],
127
- :O_ENUM => [],
128
- :O_RANGE => [],
129
- :RANGE => [],
130
- :STRING1 => [],
131
- :STRING2 => [],
132
- :_postfix_2 => [],
91
+ :lhs => {
92
+ "[" => ["[", :SYMBOL, "]", :SYMBOL],
133
93
  },
134
- :_seq_1 => {
135
- "(" => [:_seq_2],
136
- ")" => [],
137
- "-" => [],
138
- "@pass" => [],
139
- "@terminals" => [],
140
- "[" => [],
141
- "|" => [],
142
- :ENUM => [:_seq_2],
143
- :HEX => [:_seq_2],
144
- :O_ENUM => [:_seq_2],
145
- :O_RANGE => [:_seq_2],
146
- :RANGE => [:_seq_2],
147
- :STRING1 => [:_seq_2],
148
- :STRING2 => [:_seq_2],
149
- :_empty => [],
150
- :_eof => [],
94
+ :pass => {
95
+ "@pass" => ["@pass", :_pass_1],
151
96
  },
152
- :_seq_2 => {
153
- "(" => [:diff, :_seq_1],
154
- ")" => [],
155
- "-" => [],
156
- "@pass" => [],
157
- "@terminals" => [],
158
- "[" => [],
159
- "|" => [],
160
- :ENUM => [:diff, :_seq_1],
161
- :HEX => [:diff, :_seq_1],
162
- :O_ENUM => [:diff, :_seq_1],
163
- :O_RANGE => [:diff, :_seq_1],
164
- :RANGE => [:diff, :_seq_1],
165
- :STRING1 => [:diff, :_seq_1],
166
- :STRING2 => [:diff, :_seq_1],
167
- :_eof => [],
97
+ :_pass_1 => {
98
+ "#" => [:_pass_2, :_pass_3],
99
+ "/*" => [:_pass_2, :_pass_3],
100
+ "//" => [:_pass_2, :_pass_3],
101
+ :_pass_5 => [:_pass_2, :_pass_3],
168
102
  },
169
- :alt => {
170
- "(" => [:seq, :_alt_1],
171
- ")" => [],
103
+ :_pass_11 => {
104
+ :_pass_10 => [:_pass_10, :_pass_9],
105
+ },
106
+ :_pass_12 => {
107
+ "*" => [:_pass_14],
108
+ "*/" => [],
109
+ :_pass_15 => [:_pass_14],
110
+ },
111
+ :_pass_13 => {
112
+ "*" => [:_pass_16],
113
+ :_pass_15 => [:_pass_15],
114
+ },
115
+ :_pass_14 => {
116
+ "*" => [:_pass_13, :_pass_12],
117
+ :_pass_15 => [:_pass_13, :_pass_12],
118
+ },
119
+ :_pass_16 => {
120
+ "*" => ["*", :_pass_17],
121
+ },
122
+ :_pass_2 => {
123
+ "#" => [:_pass_6],
124
+ "/*" => [:_pass_7],
125
+ "//" => [:_pass_6],
126
+ :_pass_5 => [:_pass_5],
127
+ },
128
+ :_pass_3 => {
129
+ "#" => [:_pass_4],
130
+ "/*" => [:_pass_4],
131
+ "//" => [:_pass_4],
172
132
  "@pass" => [],
173
133
  "@terminals" => [],
174
134
  "[" => [],
175
- :ENUM => [:seq, :_alt_1],
176
- :HEX => [:seq, :_alt_1],
177
- :O_ENUM => [:seq, :_alt_1],
178
- :O_RANGE => [:seq, :_alt_1],
179
- :RANGE => [:seq, :_alt_1],
180
- :STRING1 => [:seq, :_alt_1],
181
- :STRING2 => [:seq, :_alt_1],
135
+ :_pass_5 => [:_pass_4],
182
136
  },
183
- :declaration => {
184
- "(" => [],
185
- "@pass" => ["@pass"],
186
- "@terminals" => ["@terminals"],
187
- "[" => [],
188
- :ENUM => [],
189
- :HEX => [],
190
- :O_ENUM => [],
191
- :O_RANGE => [],
192
- :RANGE => [],
193
- :STRING1 => [],
194
- :STRING2 => [],
137
+ :_pass_4 => {
138
+ "#" => [:_pass_2, :_pass_3],
139
+ "/*" => [:_pass_2, :_pass_3],
140
+ "//" => [:_pass_2, :_pass_3],
141
+ :_pass_5 => [:_pass_2, :_pass_3],
195
142
  },
196
- :diff => {
197
- "(" => [:postfix, :_diff_1],
198
- :ENUM => [:postfix, :_diff_1],
199
- :HEX => [:postfix, :_diff_1],
200
- :O_ENUM => [:postfix, :_diff_1],
201
- :O_RANGE => [:postfix, :_diff_1],
202
- :RANGE => [:postfix, :_diff_1],
203
- :STRING1 => [:postfix, :_diff_1],
204
- :STRING2 => [:postfix, :_diff_1],
143
+ :_pass_6 => {
144
+ "#" => [:_pass_8, :_pass_9],
145
+ "//" => [:_pass_8, :_pass_9],
205
146
  },
206
- :ebnf => {
207
- "(" => [:_ebnf_2],
208
- "@pass" => [:_ebnf_2],
209
- "@terminals" => [:_ebnf_2],
210
- "[" => [:_ebnf_2],
211
- :ENUM => [:_ebnf_2],
212
- :HEX => [:_ebnf_2],
213
- :O_ENUM => [:_ebnf_2],
214
- :O_RANGE => [:_ebnf_2],
215
- :RANGE => [:_ebnf_2],
216
- :STRING1 => [:_ebnf_2],
217
- :STRING2 => [:_ebnf_2],
218
- :_empty => [],
219
- :_eof => [],
147
+ :_pass_7 => {
148
+ "/*" => ["/*", :_pass_12, "*/"],
220
149
  },
221
- :expression => {
222
- "(" => [:alt],
223
- ")" => [],
150
+ :_pass_8 => {
151
+ "#" => ["#"],
152
+ "//" => ["//"],
153
+ },
154
+ :_pass_9 => {
155
+ "#" => [],
156
+ "/*" => [],
157
+ "//" => [],
224
158
  "@pass" => [],
225
159
  "@terminals" => [],
226
160
  "[" => [],
227
- :ENUM => [:alt],
228
- :HEX => [:alt],
229
- :O_ENUM => [:alt],
230
- :O_RANGE => [:alt],
231
- :RANGE => [:alt],
232
- :STRING1 => [:alt],
233
- :STRING2 => [:alt],
234
- },
235
- :lhs => {
236
- "::=" => [],
237
- "[" => ["[", :SYMBOL, "]", :SYMBOL],
161
+ :_pass_10 => [:_pass_11],
162
+ :_pass_5 => [],
238
163
  },
239
164
  :postfix => {
240
165
  "(" => [:primary, :_postfix_1],
241
- "-" => [],
242
166
  :ENUM => [:primary, :_postfix_1],
243
167
  :HEX => [:primary, :_postfix_1],
244
168
  :O_ENUM => [:primary, :_postfix_1],
@@ -247,6 +171,23 @@ module Branch
247
171
  :STRING1 => [:primary, :_postfix_1],
248
172
  :STRING2 => [:primary, :_postfix_1],
249
173
  },
174
+ :_postfix_1 => {
175
+ "(" => [],
176
+ ")" => [],
177
+ "-" => [],
178
+ "@pass" => [],
179
+ "@terminals" => [],
180
+ :ENUM => [],
181
+ :HEX => [],
182
+ :O_ENUM => [],
183
+ :O_RANGE => [],
184
+ :RANGE => [],
185
+ :STRING1 => [],
186
+ :STRING2 => [],
187
+ "[" => [],
188
+ :_postfix_2 => [:_postfix_2],
189
+ "|" => [],
190
+ },
250
191
  :primary => {
251
192
  "(" => [:_primary_1],
252
193
  :ENUM => [:ENUM],
@@ -256,29 +197,40 @@ module Branch
256
197
  :RANGE => [:RANGE],
257
198
  :STRING1 => [:STRING1],
258
199
  :STRING2 => [:STRING2],
259
- :_postfix_2 => [],
200
+ },
201
+ :_primary_1 => {
202
+ "(" => ["(", :expression, ")"],
260
203
  },
261
204
  :rule => {
262
- "(" => [],
263
- "@pass" => [],
264
- "@terminals" => [],
265
205
  "[" => [:lhs, "::=", :expression],
266
- :ENUM => [],
267
- :HEX => [],
268
- :O_ENUM => [],
269
- :O_RANGE => [],
270
- :RANGE => [],
271
- :STRING1 => [],
272
- :STRING2 => [],
273
206
  },
274
207
  :seq => {
275
208
  "(" => [:diff, :_seq_1],
209
+ :ENUM => [:diff, :_seq_1],
210
+ :HEX => [:diff, :_seq_1],
211
+ :O_ENUM => [:diff, :_seq_1],
212
+ :O_RANGE => [:diff, :_seq_1],
213
+ :RANGE => [:diff, :_seq_1],
214
+ :STRING1 => [:diff, :_seq_1],
215
+ :STRING2 => [:diff, :_seq_1],
216
+ },
217
+ :_seq_1 => {
218
+ "(" => [:_seq_2],
276
219
  ")" => [],
277
- "-" => [],
278
220
  "@pass" => [],
279
221
  "@terminals" => [],
222
+ :ENUM => [:_seq_2],
223
+ :HEX => [:_seq_2],
224
+ :O_ENUM => [:_seq_2],
225
+ :O_RANGE => [:_seq_2],
226
+ :RANGE => [:_seq_2],
227
+ :STRING1 => [:_seq_2],
228
+ :STRING2 => [:_seq_2],
280
229
  "[" => [],
281
230
  "|" => [],
231
+ },
232
+ :_seq_2 => {
233
+ "(" => [:diff, :_seq_1],
282
234
  :ENUM => [:diff, :_seq_1],
283
235
  :HEX => [:diff, :_seq_1],
284
236
  :O_ENUM => [:diff, :_seq_1],
@@ -286,19 +238,20 @@ module Branch
286
238
  :RANGE => [:diff, :_seq_1],
287
239
  :STRING1 => [:diff, :_seq_1],
288
240
  :STRING2 => [:diff, :_seq_1],
289
- :_eof => [],
290
241
  },
291
242
  }.freeze
292
243
  TERMINALS = [
244
+ "#",
293
245
  "(",
294
246
  ")",
247
+ "*",
248
+ "*/",
295
249
  "-",
250
+ "/*",
251
+ "//",
296
252
  "::=",
297
253
  "@pass",
298
254
  "@terminals",
299
- "[",
300
- "]",
301
- "|",
302
255
  :ENUM,
303
256
  :HEX,
304
257
  :O_ENUM,
@@ -307,11 +260,17 @@ module Branch
307
260
  :STRING1,
308
261
  :STRING2,
309
262
  :SYMBOL,
310
- :_postfix_2
263
+ "[",
264
+ "]",
265
+ :_pass_10,
266
+ :_pass_15,
267
+ :_pass_17,
268
+ :_pass_5,
269
+ :_postfix_2,
270
+ "|"
311
271
  ].freeze
312
272
  FIRST = {
313
- :_alt_1 => [
314
- "|",
273
+ :alt => [
315
274
  :HEX,
316
275
  :RANGE,
317
276
  :ENUM,
@@ -320,149 +279,20 @@ module Branch
320
279
  :STRING1,
321
280
  :STRING2,
322
281
  "("],
282
+ :_alt_1 => [
283
+ :_eps,
284
+ "|"],
323
285
  :_alt_2 => [
324
286
  "|"],
325
287
  :_alt_3 => [
326
288
  "|"],
327
289
  :_alt_4 => [
328
- "|",
329
- :HEX,
330
- :RANGE,
331
- :ENUM,
332
- :O_RANGE,
333
- :O_ENUM,
334
- :STRING1,
335
- :STRING2,
336
- "("],
290
+ :_eps,
291
+ "|"],
337
292
  :_alt_5 => [
338
- "|",
339
- :HEX,
340
- :RANGE,
341
- :ENUM,
342
- :O_RANGE,
343
- :O_ENUM,
344
- :STRING1,
345
- :STRING2,
346
- "("],
347
- :_alt_6 => [
348
- :HEX,
349
- :RANGE,
350
- :ENUM,
351
- :O_RANGE,
352
- :O_ENUM,
353
- :STRING1,
354
- :STRING2,
355
- "("],
356
- :_diff_1 => [
357
- "-",
358
- :HEX,
359
- :RANGE,
360
- :ENUM,
361
- :O_RANGE,
362
- :O_ENUM,
363
- :STRING1,
364
- :STRING2,
365
- "("],
366
- :_diff_2 => [
367
- "-"],
368
- :_diff_3 => [
369
- "-"],
370
- :_diff_4 => [
371
- "-",
372
- :HEX,
373
- :RANGE,
374
- :ENUM,
375
- :O_RANGE,
376
- :O_ENUM,
377
- :STRING1,
378
- :STRING2,
379
- "("],
380
- :_diff_5 => [
381
- "-",
382
- :HEX,
383
- :RANGE,
384
- :ENUM,
385
- :O_RANGE,
386
- :O_ENUM,
387
- :STRING1,
388
- :STRING2,
389
- "("],
390
- :_diff_6 => [
391
- :HEX,
392
- :RANGE,
393
- :ENUM,
394
- :O_RANGE,
395
- :O_ENUM,
396
- :STRING1,
397
- :STRING2,
398
- "("],
399
- :_ebnf_1 => [
400
- "@terminals",
401
- "@pass",
402
- "[",
403
- :HEX,
404
- :RANGE,
405
- :ENUM,
406
- :O_RANGE,
407
- :O_ENUM,
408
- :STRING1,
409
- :STRING2,
410
- "("],
411
- :_ebnf_2 => [
412
- "@terminals",
413
- "@pass",
414
- "[",
415
- :HEX,
416
- :RANGE,
417
- :ENUM,
418
- :O_RANGE,
419
- :O_ENUM,
420
- :STRING1,
421
- :STRING2,
422
- "("],
423
- :_ebnf_3 => [
424
- "@terminals",
425
- "@pass",
426
- "[",
427
- :HEX,
428
- :RANGE,
429
- :ENUM,
430
- :O_RANGE,
431
- :O_ENUM,
432
- :STRING1,
433
- :STRING2,
434
- "("],
435
- :_empty => [
436
- ],
437
- :_lhs_1 => [
438
- :SYMBOL],
439
- :_lhs_2 => [
440
- "]"],
441
- :_lhs_3 => [
442
- :SYMBOL],
443
- :_postfix_1 => [
444
- :_postfix_2,
445
- :HEX,
446
- :RANGE,
447
- :ENUM,
448
- :O_RANGE,
449
- :O_ENUM,
450
- :STRING1,
451
- :STRING2,
452
- "("],
453
- :_postfix_3 => [
454
- :_postfix_2,
455
- :HEX,
456
- :RANGE,
457
- :ENUM,
458
- :O_RANGE,
459
- :O_ENUM,
460
- :STRING1,
461
- :STRING2,
462
- "("],
463
- :_primary_1 => [
464
- "("],
465
- :_primary_2 => [
293
+ :_eps,
294
+ "|"],
295
+ :_alt_6 => [
466
296
  :HEX,
467
297
  :RANGE,
468
298
  :ENUM,
@@ -471,11 +301,10 @@ module Branch
471
301
  :STRING1,
472
302
  :STRING2,
473
303
  "("],
474
- :_primary_3 => [
475
- ")"],
476
- :_rule_1 => [
477
- "::="],
478
- :_rule_2 => [
304
+ :declaration => [
305
+ "@terminals",
306
+ "@pass"],
307
+ :diff => [
479
308
  :HEX,
480
309
  :RANGE,
481
310
  :ENUM,
@@ -484,7 +313,20 @@ module Branch
484
313
  :STRING1,
485
314
  :STRING2,
486
315
  "("],
487
- :_seq_1 => [
316
+ :_diff_1 => [
317
+ :_eps,
318
+ "-"],
319
+ :_diff_2 => [
320
+ "-"],
321
+ :_diff_3 => [
322
+ "-"],
323
+ :_diff_4 => [
324
+ :_eps,
325
+ "-"],
326
+ :_diff_5 => [
327
+ :_eps,
328
+ "-"],
329
+ :_diff_6 => [
488
330
  :HEX,
489
331
  :RANGE,
490
332
  :ENUM,
@@ -493,7 +335,27 @@ module Branch
493
335
  :STRING1,
494
336
  :STRING2,
495
337
  "("],
496
- :_seq_2 => [
338
+ :ebnf => [
339
+ :_eps,
340
+ "@terminals",
341
+ "@pass",
342
+ "["],
343
+ :_ebnf_1 => [
344
+ "@terminals",
345
+ "@pass",
346
+ "["],
347
+ :_ebnf_2 => [
348
+ "@terminals",
349
+ "@pass",
350
+ "["],
351
+ :_ebnf_3 => [
352
+ :_eps,
353
+ "@terminals",
354
+ "@pass",
355
+ "["],
356
+ :_empty => [
357
+ :_eps],
358
+ :expression => [
497
359
  :HEX,
498
360
  :RANGE,
499
361
  :ENUM,
@@ -502,7 +364,98 @@ module Branch
502
364
  :STRING1,
503
365
  :STRING2,
504
366
  "("],
505
- :_seq_3 => [
367
+ :lhs => [
368
+ "["],
369
+ :_lhs_1 => [
370
+ :SYMBOL],
371
+ :_lhs_2 => [
372
+ "]"],
373
+ :_lhs_3 => [
374
+ :SYMBOL],
375
+ :pass => [
376
+ "@pass"],
377
+ :_pass_1 => [
378
+ :_pass_5,
379
+ "/*",
380
+ "#",
381
+ "//"],
382
+ :_pass_11 => [
383
+ :_pass_10],
384
+ :_pass_12 => [
385
+ :_eps,
386
+ :_pass_15,
387
+ "*"],
388
+ :_pass_13 => [
389
+ :_pass_15,
390
+ "*"],
391
+ :_pass_14 => [
392
+ :_pass_15,
393
+ "*"],
394
+ :_pass_16 => [
395
+ "*"],
396
+ :_pass_18 => [
397
+ :_pass_5,
398
+ "/*",
399
+ "#",
400
+ "//"],
401
+ :_pass_19 => [
402
+ :_eps,
403
+ :_pass_5,
404
+ "/*",
405
+ "#",
406
+ "//"],
407
+ :_pass_2 => [
408
+ :_pass_5,
409
+ "/*",
410
+ "#",
411
+ "//"],
412
+ :_pass_20 => [
413
+ :_eps,
414
+ :_pass_5,
415
+ "/*",
416
+ "#",
417
+ "//"],
418
+ :_pass_21 => [
419
+ :_pass_10,
420
+ :_eps],
421
+ :_pass_22 => [
422
+ :_pass_10,
423
+ :_eps],
424
+ :_pass_23 => [
425
+ "*/",
426
+ :_pass_15,
427
+ "*"],
428
+ :_pass_24 => [
429
+ :_eps,
430
+ :_pass_15,
431
+ "*"],
432
+ :_pass_25 => [
433
+ :_pass_17],
434
+ :_pass_26 => [
435
+ "*/"],
436
+ :_pass_3 => [
437
+ :_eps,
438
+ :_pass_5,
439
+ "/*",
440
+ "#",
441
+ "//"],
442
+ :_pass_4 => [
443
+ :_pass_5,
444
+ "/*",
445
+ "#",
446
+ "//"],
447
+ :_pass_6 => [
448
+ "#",
449
+ "//"],
450
+ :_pass_7 => [
451
+ "/*"],
452
+ :_pass_8 => [
453
+ "#",
454
+ "//"],
455
+ :_pass_9 => [
456
+ :_eps,
457
+ :_pass_10],
458
+ :postfix => [
506
459
  :HEX,
507
460
  :RANGE,
508
461
  :ENUM,
@@ -511,7 +464,13 @@ module Branch
511
464
  :STRING1,
512
465
  :STRING2,
513
466
  "("],
514
- :_seq_4 => [
467
+ :_postfix_1 => [
468
+ :_postfix_2,
469
+ :_eps],
470
+ :_postfix_3 => [
471
+ :_postfix_2,
472
+ :_eps],
473
+ :primary => [
515
474
  :HEX,
516
475
  :RANGE,
517
476
  :ENUM,
@@ -520,18 +479,9 @@ module Branch
520
479
  :STRING1,
521
480
  :STRING2,
522
481
  "("],
523
- :alt => [
524
- :HEX,
525
- :RANGE,
526
- :ENUM,
527
- :O_RANGE,
528
- :O_ENUM,
529
- :STRING1,
530
- :STRING2,
482
+ :_primary_1 => [
531
483
  "("],
532
- :declaration => [
533
- "@terminals",
534
- "@pass",
484
+ :_primary_2 => [
535
485
  :HEX,
536
486
  :RANGE,
537
487
  :ENUM,
@@ -540,7 +490,13 @@ module Branch
540
490
  :STRING1,
541
491
  :STRING2,
542
492
  "("],
543
- :diff => [
493
+ :_primary_3 => [
494
+ ")"],
495
+ :rule => [
496
+ "["],
497
+ :_rule_1 => [
498
+ "::="],
499
+ :_rule_2 => [
544
500
  :HEX,
545
501
  :RANGE,
546
502
  :ENUM,
@@ -549,10 +505,7 @@ module Branch
549
505
  :STRING1,
550
506
  :STRING2,
551
507
  "("],
552
- :ebnf => [
553
- "@terminals",
554
- "@pass",
555
- "[",
508
+ :seq => [
556
509
  :HEX,
557
510
  :RANGE,
558
511
  :ENUM,
@@ -561,7 +514,8 @@ module Branch
561
514
  :STRING1,
562
515
  :STRING2,
563
516
  "("],
564
- :expression => [
517
+ :_seq_1 => [
518
+ :_eps,
565
519
  :HEX,
566
520
  :RANGE,
567
521
  :ENUM,
@@ -570,9 +524,7 @@ module Branch
570
524
  :STRING1,
571
525
  :STRING2,
572
526
  "("],
573
- :lhs => [
574
- "["],
575
- :postfix => [
527
+ :_seq_2 => [
576
528
  :HEX,
577
529
  :RANGE,
578
530
  :ENUM,
@@ -581,7 +533,8 @@ module Branch
581
533
  :STRING1,
582
534
  :STRING2,
583
535
  "("],
584
- :primary => [
536
+ :_seq_3 => [
537
+ :_eps,
585
538
  :HEX,
586
539
  :RANGE,
587
540
  :ENUM,
@@ -590,9 +543,8 @@ module Branch
590
543
  :STRING1,
591
544
  :STRING2,
592
545
  "("],
593
- :rule => [
594
- "["],
595
- :seq => [
546
+ :_seq_4 => [
547
+ :_eps,
596
548
  :HEX,
597
549
  :RANGE,
598
550
  :ENUM,
@@ -603,8 +555,7 @@ module Branch
603
555
  "("],
604
556
  }.freeze
605
557
  FOLLOW = {
606
- :_alt_1 => [
607
- "|",
558
+ :alt => [
608
559
  :HEX,
609
560
  :RANGE,
610
561
  :ENUM,
@@ -613,30 +564,19 @@ module Branch
613
564
  :STRING1,
614
565
  :STRING2,
615
566
  "("],
567
+ :_alt_1 => [
568
+ :_eps,
569
+ "|"],
616
570
  :_alt_2 => [
617
571
  "|"],
618
572
  :_alt_3 => [
619
573
  "|"],
620
574
  :_alt_4 => [
621
- "|",
622
- :HEX,
623
- :RANGE,
624
- :ENUM,
625
- :O_RANGE,
626
- :O_ENUM,
627
- :STRING1,
628
- :STRING2,
629
- "("],
575
+ :_eps,
576
+ "|"],
630
577
  :_alt_5 => [
631
- "|",
632
- :HEX,
633
- :RANGE,
634
- :ENUM,
635
- :O_RANGE,
636
- :O_ENUM,
637
- :STRING1,
638
- :STRING2,
639
- "("],
578
+ :_eps,
579
+ "|"],
640
580
  :_alt_6 => [
641
581
  :HEX,
642
582
  :RANGE,
@@ -646,8 +586,10 @@ module Branch
646
586
  :STRING1,
647
587
  :STRING2,
648
588
  "("],
649
- :_diff_1 => [
650
- "-",
589
+ :declaration => [
590
+ "@terminals",
591
+ "@pass"],
592
+ :diff => [
651
593
  :HEX,
652
594
  :RANGE,
653
595
  :ENUM,
@@ -656,30 +598,19 @@ module Branch
656
598
  :STRING1,
657
599
  :STRING2,
658
600
  "("],
601
+ :_diff_1 => [
602
+ :_eps,
603
+ "-"],
659
604
  :_diff_2 => [
660
605
  "-"],
661
606
  :_diff_3 => [
662
607
  "-"],
663
608
  :_diff_4 => [
664
- "-",
665
- :HEX,
666
- :RANGE,
667
- :ENUM,
668
- :O_RANGE,
669
- :O_ENUM,
670
- :STRING1,
671
- :STRING2,
672
- "("],
609
+ :_eps,
610
+ "-"],
673
611
  :_diff_5 => [
674
- "-",
675
- :HEX,
676
- :RANGE,
677
- :ENUM,
678
- :O_RANGE,
679
- :O_ENUM,
680
- :STRING1,
681
- :STRING2,
682
- "("],
612
+ :_eps,
613
+ "-"],
683
614
  :_diff_6 => [
684
615
  :HEX,
685
616
  :RANGE,
@@ -689,34 +620,27 @@ module Branch
689
620
  :STRING1,
690
621
  :STRING2,
691
622
  "("],
623
+ :ebnf => [
624
+ :_eps,
625
+ "@terminals",
626
+ "@pass",
627
+ "["],
692
628
  :_ebnf_1 => [
693
629
  "@terminals",
694
630
  "@pass",
695
- "[",
696
- :HEX,
697
- :RANGE,
698
- :ENUM,
699
- :O_RANGE,
700
- :O_ENUM,
701
- :STRING1,
702
- :STRING2,
703
- "("],
631
+ "["],
704
632
  :_ebnf_2 => [
705
633
  "@terminals",
706
634
  "@pass",
707
- "[",
708
- :HEX,
709
- :RANGE,
710
- :ENUM,
711
- :O_RANGE,
712
- :O_ENUM,
713
- :STRING1,
714
- :STRING2,
715
- "("],
635
+ "["],
716
636
  :_ebnf_3 => [
637
+ :_eps,
717
638
  "@terminals",
718
639
  "@pass",
719
- "[",
640
+ "["],
641
+ :_empty => [
642
+ :_eps],
643
+ :expression => [
720
644
  :HEX,
721
645
  :RANGE,
722
646
  :ENUM,
@@ -725,16 +649,98 @@ module Branch
725
649
  :STRING1,
726
650
  :STRING2,
727
651
  "("],
728
- :_empty => [
729
- ],
652
+ :lhs => [
653
+ "["],
730
654
  :_lhs_1 => [
731
655
  :SYMBOL],
732
656
  :_lhs_2 => [
733
657
  "]"],
734
658
  :_lhs_3 => [
735
659
  :SYMBOL],
736
- :_postfix_1 => [
737
- :_postfix_2,
660
+ :pass => [
661
+ "@pass"],
662
+ :_pass_1 => [
663
+ :_pass_5,
664
+ "/*",
665
+ "#",
666
+ "//"],
667
+ :_pass_11 => [
668
+ :_pass_10],
669
+ :_pass_12 => [
670
+ :_eps,
671
+ :_pass_15,
672
+ "*"],
673
+ :_pass_13 => [
674
+ :_pass_15,
675
+ "*"],
676
+ :_pass_14 => [
677
+ :_pass_15,
678
+ "*"],
679
+ :_pass_16 => [
680
+ "*"],
681
+ :_pass_18 => [
682
+ :_pass_5,
683
+ "/*",
684
+ "#",
685
+ "//"],
686
+ :_pass_19 => [
687
+ :_eps,
688
+ :_pass_5,
689
+ "/*",
690
+ "#",
691
+ "//"],
692
+ :_pass_2 => [
693
+ :_pass_5,
694
+ "/*",
695
+ "#",
696
+ "//"],
697
+ :_pass_20 => [
698
+ :_eps,
699
+ :_pass_5,
700
+ "/*",
701
+ "#",
702
+ "//"],
703
+ :_pass_21 => [
704
+ :_pass_10,
705
+ :_eps],
706
+ :_pass_22 => [
707
+ :_pass_10,
708
+ :_eps],
709
+ :_pass_23 => [
710
+ "*/",
711
+ :_pass_15,
712
+ "*"],
713
+ :_pass_24 => [
714
+ :_eps,
715
+ :_pass_15,
716
+ "*"],
717
+ :_pass_25 => [
718
+ :_pass_17],
719
+ :_pass_26 => [
720
+ "*/"],
721
+ :_pass_3 => [
722
+ :_eps,
723
+ :_pass_5,
724
+ "/*",
725
+ "#",
726
+ "//"],
727
+ :_pass_4 => [
728
+ :_pass_5,
729
+ "/*",
730
+ "#",
731
+ "//"],
732
+ :_pass_6 => [
733
+ "#",
734
+ "//"],
735
+ :_pass_7 => [
736
+ "/*"],
737
+ :_pass_8 => [
738
+ "#",
739
+ "//"],
740
+ :_pass_9 => [
741
+ :_eps,
742
+ :_pass_10],
743
+ :postfix => [
738
744
  :HEX,
739
745
  :RANGE,
740
746
  :ENUM,
@@ -743,8 +749,13 @@ module Branch
743
749
  :STRING1,
744
750
  :STRING2,
745
751
  "("],
752
+ :_postfix_1 => [
753
+ :_postfix_2,
754
+ :_eps],
746
755
  :_postfix_3 => [
747
756
  :_postfix_2,
757
+ :_eps],
758
+ :primary => [
748
759
  :HEX,
749
760
  :RANGE,
750
761
  :ENUM,
@@ -766,6 +777,8 @@ module Branch
766
777
  "("],
767
778
  :_primary_3 => [
768
779
  ")"],
780
+ :rule => [
781
+ "["],
769
782
  :_rule_1 => [
770
783
  "::="],
771
784
  :_rule_2 => [
@@ -777,75 +790,7 @@ module Branch
777
790
  :STRING1,
778
791
  :STRING2,
779
792
  "("],
780
- :_seq_1 => [
781
- :HEX,
782
- :RANGE,
783
- :ENUM,
784
- :O_RANGE,
785
- :O_ENUM,
786
- :STRING1,
787
- :STRING2,
788
- "("],
789
- :_seq_2 => [
790
- :HEX,
791
- :RANGE,
792
- :ENUM,
793
- :O_RANGE,
794
- :O_ENUM,
795
- :STRING1,
796
- :STRING2,
797
- "("],
798
- :_seq_3 => [
799
- :HEX,
800
- :RANGE,
801
- :ENUM,
802
- :O_RANGE,
803
- :O_ENUM,
804
- :STRING1,
805
- :STRING2,
806
- "("],
807
- :_seq_4 => [
808
- :HEX,
809
- :RANGE,
810
- :ENUM,
811
- :O_RANGE,
812
- :O_ENUM,
813
- :STRING1,
814
- :STRING2,
815
- "("],
816
- :alt => [
817
- :HEX,
818
- :RANGE,
819
- :ENUM,
820
- :O_RANGE,
821
- :O_ENUM,
822
- :STRING1,
823
- :STRING2,
824
- "("],
825
- :declaration => [
826
- "@terminals",
827
- "@pass",
828
- :HEX,
829
- :RANGE,
830
- :ENUM,
831
- :O_RANGE,
832
- :O_ENUM,
833
- :STRING1,
834
- :STRING2,
835
- "("],
836
- :diff => [
837
- :HEX,
838
- :RANGE,
839
- :ENUM,
840
- :O_RANGE,
841
- :O_ENUM,
842
- :STRING1,
843
- :STRING2,
844
- "("],
845
- :ebnf => [
846
- "@terminals",
847
- "@pass",
848
- "[",
793
+ :seq => [
849
794
  :HEX,
850
795
  :RANGE,
851
796
  :ENUM,
@@ -854,7 +799,8 @@ module Branch
854
799
  :STRING1,
855
800
  :STRING2,
856
801
  "("],
857
- :expression => [
802
+ :_seq_1 => [
803
+ :_eps,
858
804
  :HEX,
859
805
  :RANGE,
860
806
  :ENUM,
@@ -863,9 +809,7 @@ module Branch
863
809
  :STRING1,
864
810
  :STRING2,
865
811
  "("],
866
- :lhs => [
867
- "["],
868
- :postfix => [
812
+ :_seq_2 => [
869
813
  :HEX,
870
814
  :RANGE,
871
815
  :ENUM,
@@ -874,7 +818,8 @@ module Branch
874
818
  :STRING1,
875
819
  :STRING2,
876
820
  "("],
877
- :primary => [
821
+ :_seq_3 => [
822
+ :_eps,
878
823
  :HEX,
879
824
  :RANGE,
880
825
  :ENUM,
@@ -883,9 +828,8 @@ module Branch
883
828
  :STRING1,
884
829
  :STRING2,
885
830
  "("],
886
- :rule => [
887
- "["],
888
- :seq => [
831
+ :_seq_4 => [
832
+ :_eps,
889
833
  :HEX,
890
834
  :RANGE,
891
835
  :ENUM,