ebnf 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,