ebnf 1.1.2 → 2.1.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +218 -196
- data/UNLICENSE +1 -1
- data/VERSION +1 -1
- data/bin/ebnf +40 -21
- data/etc/abnf-core.ebnf +52 -0
- data/etc/abnf.abnf +121 -0
- data/etc/abnf.ebnf +124 -0
- data/etc/abnf.sxp +45 -0
- data/etc/doap.ttl +23 -15
- data/etc/ebnf.ebnf +21 -33
- data/etc/ebnf.html +171 -160
- data/etc/{ebnf.rb → ebnf.ll1.rb} +30 -107
- data/etc/ebnf.ll1.sxp +182 -183
- data/etc/ebnf.peg.rb +90 -0
- data/etc/ebnf.peg.sxp +84 -0
- data/etc/ebnf.sxp +40 -41
- data/etc/iso-ebnf.ebnf +140 -0
- data/etc/iso-ebnf.isoebnf +138 -0
- data/etc/iso-ebnf.sxp +65 -0
- data/etc/sparql.ebnf +4 -4
- data/etc/sparql.html +1603 -1751
- data/etc/sparql.ll1.sxp +7372 -7372
- data/etc/sparql.peg.rb +532 -0
- data/etc/sparql.peg.sxp +597 -0
- data/etc/sparql.sxp +363 -362
- data/etc/turtle.ebnf +3 -3
- data/etc/turtle.html +465 -517
- data/etc/{turtle.rb → turtle.ll1.rb} +3 -4
- data/etc/turtle.ll1.sxp +425 -425
- data/etc/turtle.peg.rb +182 -0
- data/etc/turtle.peg.sxp +199 -0
- data/etc/turtle.sxp +103 -101
- data/lib/ebnf.rb +7 -2
- data/lib/ebnf/abnf.rb +301 -0
- data/lib/ebnf/abnf/core.rb +23 -0
- data/lib/ebnf/abnf/meta.rb +111 -0
- data/lib/ebnf/base.rb +128 -87
- data/lib/ebnf/bnf.rb +1 -26
- data/lib/ebnf/ebnf/meta.rb +90 -0
- data/lib/ebnf/isoebnf.rb +229 -0
- data/lib/ebnf/isoebnf/meta.rb +75 -0
- data/lib/ebnf/ll1.rb +140 -8
- data/lib/ebnf/ll1/lexer.rb +37 -32
- data/lib/ebnf/ll1/parser.rb +113 -73
- data/lib/ebnf/ll1/scanner.rb +83 -51
- data/lib/ebnf/native.rb +320 -0
- data/lib/ebnf/parser.rb +285 -302
- data/lib/ebnf/peg.rb +39 -0
- data/lib/ebnf/peg/parser.rb +561 -0
- data/lib/ebnf/peg/rule.rb +241 -0
- data/lib/ebnf/rule.rb +453 -163
- data/lib/ebnf/terminals.rb +21 -0
- data/lib/ebnf/writer.rb +561 -88
- metadata +114 -28
- data/etc/sparql.rb +0 -45773
data/etc/{ebnf.rb → ebnf.ll1.rb}
RENAMED
@@ -1,14 +1,11 @@
|
|
1
|
-
# This file is automatically generated by
|
2
|
-
#
|
3
|
-
module
|
1
|
+
# This file is automatically generated by ebnf version 2.0.0
|
2
|
+
# Derived from etc/ebnf.ebnf
|
3
|
+
module Meta
|
4
4
|
START = :ebnf
|
5
|
-
|
6
5
|
BRANCH = {
|
7
6
|
:alt => {
|
8
7
|
"(" => [:seq, :_alt_1],
|
9
|
-
:ENUM => [:seq, :_alt_1],
|
10
8
|
:HEX => [:seq, :_alt_1],
|
11
|
-
:O_ENUM => [:seq, :_alt_1],
|
12
9
|
:O_RANGE => [:seq, :_alt_1],
|
13
10
|
:RANGE => [:seq, :_alt_1],
|
14
11
|
:STRING1 => [:seq, :_alt_1],
|
@@ -34,9 +31,7 @@ module Branch
|
|
34
31
|
},
|
35
32
|
:diff => {
|
36
33
|
"(" => [:postfix, :_diff_1],
|
37
|
-
:ENUM => [:postfix, :_diff_1],
|
38
34
|
:HEX => [:postfix, :_diff_1],
|
39
|
-
:O_ENUM => [:postfix, :_diff_1],
|
40
35
|
:O_RANGE => [:postfix, :_diff_1],
|
41
36
|
:RANGE => [:postfix, :_diff_1],
|
42
37
|
:STRING1 => [:postfix, :_diff_1],
|
@@ -49,10 +44,8 @@ module Branch
|
|
49
44
|
"-" => [:_diff_2],
|
50
45
|
"@pass" => [],
|
51
46
|
"@terminals" => [],
|
52
|
-
:ENUM => [],
|
53
47
|
:HEX => [],
|
54
48
|
:LHS => [],
|
55
|
-
:O_ENUM => [],
|
56
49
|
:O_RANGE => [],
|
57
50
|
:RANGE => [],
|
58
51
|
:STRING1 => [],
|
@@ -80,9 +73,7 @@ module Branch
|
|
80
73
|
},
|
81
74
|
:expression => {
|
82
75
|
"(" => [:alt],
|
83
|
-
:ENUM => [:alt],
|
84
76
|
:HEX => [:alt],
|
85
|
-
:O_ENUM => [:alt],
|
86
77
|
:O_RANGE => [:alt],
|
87
78
|
:RANGE => [:alt],
|
88
79
|
:STRING1 => [:alt],
|
@@ -94,9 +85,7 @@ module Branch
|
|
94
85
|
},
|
95
86
|
:postfix => {
|
96
87
|
"(" => [:primary, :_postfix_1],
|
97
|
-
:ENUM => [:primary, :_postfix_1],
|
98
88
|
:HEX => [:primary, :_postfix_1],
|
99
|
-
:O_ENUM => [:primary, :_postfix_1],
|
100
89
|
:O_RANGE => [:primary, :_postfix_1],
|
101
90
|
:RANGE => [:primary, :_postfix_1],
|
102
91
|
:STRING1 => [:primary, :_postfix_1],
|
@@ -109,10 +98,8 @@ module Branch
|
|
109
98
|
"-" => [],
|
110
99
|
"@pass" => [],
|
111
100
|
"@terminals" => [],
|
112
|
-
:ENUM => [],
|
113
101
|
:HEX => [],
|
114
102
|
:LHS => [],
|
115
|
-
:O_ENUM => [],
|
116
103
|
:O_RANGE => [],
|
117
104
|
:POSTFIX => [:POSTFIX],
|
118
105
|
:RANGE => [],
|
@@ -123,9 +110,7 @@ module Branch
|
|
123
110
|
},
|
124
111
|
:primary => {
|
125
112
|
"(" => [:_primary_1],
|
126
|
-
:ENUM => [:ENUM],
|
127
113
|
:HEX => [:HEX],
|
128
|
-
:O_ENUM => [:O_ENUM],
|
129
114
|
:O_RANGE => [:O_RANGE],
|
130
115
|
:RANGE => [:RANGE],
|
131
116
|
:STRING1 => [:STRING1],
|
@@ -140,9 +125,7 @@ module Branch
|
|
140
125
|
},
|
141
126
|
:seq => {
|
142
127
|
"(" => [:diff, :_seq_1],
|
143
|
-
:ENUM => [:diff, :_seq_1],
|
144
128
|
:HEX => [:diff, :_seq_1],
|
145
|
-
:O_ENUM => [:diff, :_seq_1],
|
146
129
|
:O_RANGE => [:diff, :_seq_1],
|
147
130
|
:RANGE => [:diff, :_seq_1],
|
148
131
|
:STRING1 => [:diff, :_seq_1],
|
@@ -154,10 +137,8 @@ module Branch
|
|
154
137
|
")" => [],
|
155
138
|
"@pass" => [],
|
156
139
|
"@terminals" => [],
|
157
|
-
:ENUM => [:_seq_2],
|
158
140
|
:HEX => [:_seq_2],
|
159
141
|
:LHS => [],
|
160
|
-
:O_ENUM => [:_seq_2],
|
161
142
|
:O_RANGE => [:_seq_2],
|
162
143
|
:RANGE => [:_seq_2],
|
163
144
|
:STRING1 => [:_seq_2],
|
@@ -167,9 +148,7 @@ module Branch
|
|
167
148
|
},
|
168
149
|
:_seq_2 => {
|
169
150
|
"(" => [:diff, :_seq_1],
|
170
|
-
:ENUM => [:diff, :_seq_1],
|
171
151
|
:HEX => [:diff, :_seq_1],
|
172
|
-
:O_ENUM => [:diff, :_seq_1],
|
173
152
|
:O_RANGE => [:diff, :_seq_1],
|
174
153
|
:RANGE => [:diff, :_seq_1],
|
175
154
|
:STRING1 => [:diff, :_seq_1],
|
@@ -183,10 +162,8 @@ module Branch
|
|
183
162
|
"-",
|
184
163
|
"@pass",
|
185
164
|
"@terminals",
|
186
|
-
:ENUM,
|
187
165
|
:HEX,
|
188
166
|
:LHS,
|
189
|
-
:O_ENUM,
|
190
167
|
:O_RANGE,
|
191
168
|
:POSTFIX,
|
192
169
|
:RANGE,
|
@@ -199,10 +176,8 @@ module Branch
|
|
199
176
|
:alt => [
|
200
177
|
:HEX,
|
201
178
|
:SYMBOL,
|
202
|
-
:ENUM,
|
203
|
-
:O_ENUM,
|
204
|
-
:RANGE,
|
205
179
|
:O_RANGE,
|
180
|
+
:RANGE,
|
206
181
|
:STRING1,
|
207
182
|
:STRING2,
|
208
183
|
"("],
|
@@ -222,10 +197,8 @@ module Branch
|
|
222
197
|
:_alt_6 => [
|
223
198
|
:HEX,
|
224
199
|
:SYMBOL,
|
225
|
-
:ENUM,
|
226
|
-
:O_ENUM,
|
227
|
-
:RANGE,
|
228
200
|
:O_RANGE,
|
201
|
+
:RANGE,
|
229
202
|
:STRING1,
|
230
203
|
:STRING2,
|
231
204
|
"("],
|
@@ -235,10 +208,8 @@ module Branch
|
|
235
208
|
:diff => [
|
236
209
|
:HEX,
|
237
210
|
:SYMBOL,
|
238
|
-
:ENUM,
|
239
|
-
:O_ENUM,
|
240
|
-
:RANGE,
|
241
211
|
:O_RANGE,
|
212
|
+
:RANGE,
|
242
213
|
:STRING1,
|
243
214
|
:STRING2,
|
244
215
|
"("],
|
@@ -253,10 +224,8 @@ module Branch
|
|
253
224
|
:_diff_4 => [
|
254
225
|
:HEX,
|
255
226
|
:SYMBOL,
|
256
|
-
:ENUM,
|
257
|
-
:O_ENUM,
|
258
|
-
:RANGE,
|
259
227
|
:O_RANGE,
|
228
|
+
:RANGE,
|
260
229
|
:STRING1,
|
261
230
|
:STRING2,
|
262
231
|
"("],
|
@@ -283,10 +252,8 @@ module Branch
|
|
283
252
|
:expression => [
|
284
253
|
:HEX,
|
285
254
|
:SYMBOL,
|
286
|
-
:ENUM,
|
287
|
-
:O_ENUM,
|
288
|
-
:RANGE,
|
289
255
|
:O_RANGE,
|
256
|
+
:RANGE,
|
290
257
|
:STRING1,
|
291
258
|
:STRING2,
|
292
259
|
"("],
|
@@ -295,20 +262,16 @@ module Branch
|
|
295
262
|
:_pass_1 => [
|
296
263
|
:HEX,
|
297
264
|
:SYMBOL,
|
298
|
-
:ENUM,
|
299
|
-
:O_ENUM,
|
300
|
-
:RANGE,
|
301
265
|
:O_RANGE,
|
266
|
+
:RANGE,
|
302
267
|
:STRING1,
|
303
268
|
:STRING2,
|
304
269
|
"("],
|
305
270
|
:postfix => [
|
306
271
|
:HEX,
|
307
272
|
:SYMBOL,
|
308
|
-
:ENUM,
|
309
|
-
:O_ENUM,
|
310
|
-
:RANGE,
|
311
273
|
:O_RANGE,
|
274
|
+
:RANGE,
|
312
275
|
:STRING1,
|
313
276
|
:STRING2,
|
314
277
|
"("],
|
@@ -321,10 +284,8 @@ module Branch
|
|
321
284
|
:primary => [
|
322
285
|
:HEX,
|
323
286
|
:SYMBOL,
|
324
|
-
:ENUM,
|
325
|
-
:O_ENUM,
|
326
|
-
:RANGE,
|
327
287
|
:O_RANGE,
|
288
|
+
:RANGE,
|
328
289
|
:STRING1,
|
329
290
|
:STRING2,
|
330
291
|
"("],
|
@@ -333,10 +294,8 @@ module Branch
|
|
333
294
|
:_primary_2 => [
|
334
295
|
:HEX,
|
335
296
|
:SYMBOL,
|
336
|
-
:ENUM,
|
337
|
-
:O_ENUM,
|
338
|
-
:RANGE,
|
339
297
|
:O_RANGE,
|
298
|
+
:RANGE,
|
340
299
|
:STRING1,
|
341
300
|
:STRING2,
|
342
301
|
"("],
|
@@ -347,20 +306,16 @@ module Branch
|
|
347
306
|
:_rule_1 => [
|
348
307
|
:HEX,
|
349
308
|
:SYMBOL,
|
350
|
-
:ENUM,
|
351
|
-
:O_ENUM,
|
352
|
-
:RANGE,
|
353
309
|
:O_RANGE,
|
310
|
+
:RANGE,
|
354
311
|
:STRING1,
|
355
312
|
:STRING2,
|
356
313
|
"("],
|
357
314
|
:seq => [
|
358
315
|
:HEX,
|
359
316
|
:SYMBOL,
|
360
|
-
:ENUM,
|
361
|
-
:O_ENUM,
|
362
|
-
:RANGE,
|
363
317
|
:O_RANGE,
|
318
|
+
:RANGE,
|
364
319
|
:STRING1,
|
365
320
|
:STRING2,
|
366
321
|
"("],
|
@@ -368,20 +323,16 @@ module Branch
|
|
368
323
|
:_eps,
|
369
324
|
:HEX,
|
370
325
|
:SYMBOL,
|
371
|
-
:ENUM,
|
372
|
-
:O_ENUM,
|
373
|
-
:RANGE,
|
374
326
|
:O_RANGE,
|
327
|
+
:RANGE,
|
375
328
|
:STRING1,
|
376
329
|
:STRING2,
|
377
330
|
"("],
|
378
331
|
:_seq_2 => [
|
379
332
|
:HEX,
|
380
333
|
:SYMBOL,
|
381
|
-
:ENUM,
|
382
|
-
:O_ENUM,
|
383
|
-
:RANGE,
|
384
334
|
:O_RANGE,
|
335
|
+
:RANGE,
|
385
336
|
:STRING1,
|
386
337
|
:STRING2,
|
387
338
|
"("],
|
@@ -389,10 +340,8 @@ module Branch
|
|
389
340
|
:_eps,
|
390
341
|
:HEX,
|
391
342
|
:SYMBOL,
|
392
|
-
:ENUM,
|
393
|
-
:O_ENUM,
|
394
|
-
:RANGE,
|
395
343
|
:O_RANGE,
|
344
|
+
:RANGE,
|
396
345
|
:STRING1,
|
397
346
|
:STRING2,
|
398
347
|
"("],
|
@@ -400,10 +349,8 @@ module Branch
|
|
400
349
|
:_eps,
|
401
350
|
:HEX,
|
402
351
|
:SYMBOL,
|
403
|
-
:ENUM,
|
404
|
-
:O_ENUM,
|
405
|
-
:RANGE,
|
406
352
|
:O_RANGE,
|
353
|
+
:RANGE,
|
407
354
|
:STRING1,
|
408
355
|
:STRING2,
|
409
356
|
"("],
|
@@ -464,10 +411,8 @@ module Branch
|
|
464
411
|
:_eof,
|
465
412
|
:HEX,
|
466
413
|
:SYMBOL,
|
467
|
-
:ENUM,
|
468
|
-
:O_ENUM,
|
469
|
-
:RANGE,
|
470
414
|
:O_RANGE,
|
415
|
+
:RANGE,
|
471
416
|
:STRING1,
|
472
417
|
:STRING2,
|
473
418
|
"@terminals",
|
@@ -480,10 +425,8 @@ module Branch
|
|
480
425
|
:_eof,
|
481
426
|
:HEX,
|
482
427
|
:SYMBOL,
|
483
|
-
:ENUM,
|
484
|
-
:O_ENUM,
|
485
|
-
:RANGE,
|
486
428
|
:O_RANGE,
|
429
|
+
:RANGE,
|
487
430
|
:STRING1,
|
488
431
|
:STRING2,
|
489
432
|
"@terminals",
|
@@ -496,10 +439,8 @@ module Branch
|
|
496
439
|
:_eof,
|
497
440
|
:HEX,
|
498
441
|
:SYMBOL,
|
499
|
-
:ENUM,
|
500
|
-
:O_ENUM,
|
501
|
-
:RANGE,
|
502
442
|
:O_RANGE,
|
443
|
+
:RANGE,
|
503
444
|
:STRING1,
|
504
445
|
:STRING2,
|
505
446
|
"@terminals",
|
@@ -512,10 +453,8 @@ module Branch
|
|
512
453
|
:_eof,
|
513
454
|
:HEX,
|
514
455
|
:SYMBOL,
|
515
|
-
:ENUM,
|
516
|
-
:O_ENUM,
|
517
|
-
:RANGE,
|
518
456
|
:O_RANGE,
|
457
|
+
:RANGE,
|
519
458
|
:STRING1,
|
520
459
|
:STRING2,
|
521
460
|
"@terminals",
|
@@ -528,10 +467,8 @@ module Branch
|
|
528
467
|
:_eof,
|
529
468
|
:HEX,
|
530
469
|
:SYMBOL,
|
531
|
-
:ENUM,
|
532
|
-
:O_ENUM,
|
533
|
-
:RANGE,
|
534
470
|
:O_RANGE,
|
471
|
+
:RANGE,
|
535
472
|
:STRING1,
|
536
473
|
:STRING2,
|
537
474
|
"@terminals",
|
@@ -572,10 +509,8 @@ module Branch
|
|
572
509
|
:_eof,
|
573
510
|
:HEX,
|
574
511
|
:SYMBOL,
|
575
|
-
:ENUM,
|
576
|
-
:O_ENUM,
|
577
|
-
:RANGE,
|
578
512
|
:O_RANGE,
|
513
|
+
:RANGE,
|
579
514
|
:STRING1,
|
580
515
|
:STRING2,
|
581
516
|
"@terminals",
|
@@ -589,10 +524,8 @@ module Branch
|
|
589
524
|
:_eof,
|
590
525
|
:HEX,
|
591
526
|
:SYMBOL,
|
592
|
-
:ENUM,
|
593
|
-
:O_ENUM,
|
594
|
-
:RANGE,
|
595
527
|
:O_RANGE,
|
528
|
+
:RANGE,
|
596
529
|
:STRING1,
|
597
530
|
:STRING2,
|
598
531
|
"@terminals",
|
@@ -606,10 +539,8 @@ module Branch
|
|
606
539
|
:_eof,
|
607
540
|
:HEX,
|
608
541
|
:SYMBOL,
|
609
|
-
:ENUM,
|
610
|
-
:O_ENUM,
|
611
|
-
:RANGE,
|
612
542
|
:O_RANGE,
|
543
|
+
:RANGE,
|
613
544
|
:STRING1,
|
614
545
|
:STRING2,
|
615
546
|
"@terminals",
|
@@ -624,10 +555,8 @@ module Branch
|
|
624
555
|
:_eof,
|
625
556
|
:HEX,
|
626
557
|
:SYMBOL,
|
627
|
-
:ENUM,
|
628
|
-
:O_ENUM,
|
629
|
-
:RANGE,
|
630
558
|
:O_RANGE,
|
559
|
+
:RANGE,
|
631
560
|
:STRING1,
|
632
561
|
:STRING2,
|
633
562
|
"@terminals",
|
@@ -642,10 +571,8 @@ module Branch
|
|
642
571
|
:_eof,
|
643
572
|
:HEX,
|
644
573
|
:SYMBOL,
|
645
|
-
:ENUM,
|
646
|
-
:O_ENUM,
|
647
|
-
:RANGE,
|
648
574
|
:O_RANGE,
|
575
|
+
:RANGE,
|
649
576
|
:STRING1,
|
650
577
|
:STRING2,
|
651
578
|
"@terminals",
|
@@ -660,10 +587,8 @@ module Branch
|
|
660
587
|
:_eof,
|
661
588
|
:HEX,
|
662
589
|
:SYMBOL,
|
663
|
-
:ENUM,
|
664
|
-
:O_ENUM,
|
665
|
-
:RANGE,
|
666
590
|
:O_RANGE,
|
591
|
+
:RANGE,
|
667
592
|
:STRING1,
|
668
593
|
:STRING2,
|
669
594
|
"@terminals",
|
@@ -678,10 +603,8 @@ module Branch
|
|
678
603
|
:_eof,
|
679
604
|
:HEX,
|
680
605
|
:SYMBOL,
|
681
|
-
:ENUM,
|
682
|
-
:O_ENUM,
|
683
|
-
:RANGE,
|
684
606
|
:O_RANGE,
|
607
|
+
:RANGE,
|
685
608
|
:STRING1,
|
686
609
|
:STRING2,
|
687
610
|
"@terminals",
|
data/etc/ebnf.ll1.sxp
CHANGED
@@ -1,183 +1,182 @@
|
|
1
|
-
(
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
(
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
(
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
(
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
(
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
(
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
(
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
(
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
(
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
(
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
(
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
(
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
(seq "(*" (star (alt (opt (seq "*" (range "^)"))) (range "^*"))) "*)")) )) )
|
1
|
+
(
|
2
|
+
(rule _empty "0" (first _eps) (seq))
|
3
|
+
(rule ebnf "1"
|
4
|
+
(start #t)
|
5
|
+
(first "@pass" "@terminals" LHS _eps)
|
6
|
+
(follow _eof)
|
7
|
+
(cleanup star)
|
8
|
+
(alt _empty _ebnf_2))
|
9
|
+
(rule _ebnf_2 "1.2"
|
10
|
+
(first "@pass" "@terminals" LHS)
|
11
|
+
(follow _eof)
|
12
|
+
(cleanup merge)
|
13
|
+
(seq _ebnf_1 ebnf))
|
14
|
+
(rule _ebnf_1 "1.1"
|
15
|
+
(first "@pass" "@terminals" LHS)
|
16
|
+
(follow "@pass" "@terminals" LHS _eof)
|
17
|
+
(alt declaration rule))
|
18
|
+
(rule declaration "2"
|
19
|
+
(first "@pass" "@terminals")
|
20
|
+
(follow "@pass" "@terminals" LHS _eof)
|
21
|
+
(alt "@terminals" pass))
|
22
|
+
(rule rule "3" (first LHS) (follow "@pass" "@terminals" LHS _eof) (seq LHS expression))
|
23
|
+
(rule expression "4"
|
24
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
25
|
+
(follow ")" "@pass" "@terminals" LHS _eof)
|
26
|
+
(seq alt))
|
27
|
+
(rule alt "5"
|
28
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
29
|
+
(follow ")" "@pass" "@terminals" LHS _eof)
|
30
|
+
(seq seq _alt_1))
|
31
|
+
(rule _alt_1 "5.1"
|
32
|
+
(first _eps "|")
|
33
|
+
(follow ")" "@pass" "@terminals" LHS _eof)
|
34
|
+
(cleanup star)
|
35
|
+
(alt _empty _alt_3))
|
36
|
+
(rule _alt_3 "5.3"
|
37
|
+
(first "|")
|
38
|
+
(follow ")" "@pass" "@terminals" LHS _eof)
|
39
|
+
(cleanup merge)
|
40
|
+
(seq _alt_2 _alt_1))
|
41
|
+
(rule _alt_2 "5.2"
|
42
|
+
(first "|")
|
43
|
+
(follow ")" "@pass" "@terminals" LHS _eof "|")
|
44
|
+
(seq "|" seq))
|
45
|
+
(rule seq "6"
|
46
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
47
|
+
(follow ")" "@pass" "@terminals" LHS _eof "|")
|
48
|
+
(cleanup plus)
|
49
|
+
(seq diff _seq_1))
|
50
|
+
(rule _seq_1 "6.1"
|
51
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL _eps)
|
52
|
+
(follow ")" "@pass" "@terminals" LHS _eof "|")
|
53
|
+
(cleanup star)
|
54
|
+
(alt _empty _seq_2))
|
55
|
+
(rule _seq_2 "6.2"
|
56
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
57
|
+
(follow ")" "@pass" "@terminals" LHS _eof "|")
|
58
|
+
(cleanup merge)
|
59
|
+
(seq diff _seq_1))
|
60
|
+
(rule diff "7"
|
61
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
62
|
+
(follow "(" ")" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2
|
63
|
+
SYMBOL _eof "|" )
|
64
|
+
(seq postfix _diff_1))
|
65
|
+
(rule _diff_1 "7.1"
|
66
|
+
(first "-" _eps)
|
67
|
+
(follow "(" ")" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2
|
68
|
+
SYMBOL _eof "|" )
|
69
|
+
(cleanup opt)
|
70
|
+
(alt _empty _diff_2))
|
71
|
+
(rule _diff_2 "7.2"
|
72
|
+
(first "-")
|
73
|
+
(follow "(" ")" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2
|
74
|
+
SYMBOL _eof "|" )
|
75
|
+
(seq "-" postfix))
|
76
|
+
(rule postfix "8"
|
77
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
78
|
+
(follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1
|
79
|
+
STRING2 SYMBOL _eof "|" )
|
80
|
+
(seq primary _postfix_1))
|
81
|
+
(rule _postfix_1 "8.1"
|
82
|
+
(first POSTFIX _eps)
|
83
|
+
(follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1
|
84
|
+
STRING2 SYMBOL _eof "|" )
|
85
|
+
(cleanup opt)
|
86
|
+
(alt _empty POSTFIX))
|
87
|
+
(rule primary "9"
|
88
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
89
|
+
(follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE POSTFIX RANGE
|
90
|
+
STRING1 STRING2 SYMBOL _eof "|" )
|
91
|
+
(alt HEX SYMBOL O_RANGE RANGE STRING1 STRING2 _primary_1))
|
92
|
+
(rule _primary_1 "9.1"
|
93
|
+
(first "(")
|
94
|
+
(follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE POSTFIX RANGE
|
95
|
+
STRING1 STRING2 SYMBOL _eof "|" )
|
96
|
+
(seq "(" expression ")"))
|
97
|
+
(rule pass "10"
|
98
|
+
(first "@pass")
|
99
|
+
(follow "@pass" "@terminals" LHS _eof)
|
100
|
+
(seq "@pass" expression))
|
101
|
+
(terminals _terminals (seq))
|
102
|
+
(terminal LHS "11" (seq (opt (seq "[" SYMBOL "]" (plus " "))) SYMBOL (star " ") "::="))
|
103
|
+
(terminal SYMBOL "12" (plus (alt (range "a-z") (range "A-Z") (range "0-9") "_" ".")))
|
104
|
+
(terminal HEX "13" (seq "#x" (plus (alt (range "a-f") (range "A-F") (range "0-9")))))
|
105
|
+
(terminal RANGE "14"
|
106
|
+
(seq "["
|
107
|
+
(plus (alt (seq R_CHAR "-" R_CHAR) (seq HEX "-" HEX) R_CHAR HEX))
|
108
|
+
(opt "-")
|
109
|
+
(diff "]" LHS)) )
|
110
|
+
(terminal O_RANGE "15"
|
111
|
+
(seq "[^" (plus (alt (seq R_CHAR "-" R_CHAR) (seq HEX "-" HEX) R_CHAR HEX)) (opt "-") "]"))
|
112
|
+
(terminal STRING1 "16" (seq "\"" (star (diff CHAR "\"")) "\""))
|
113
|
+
(terminal STRING2 "17" (seq "'" (star (diff CHAR "'")) "'"))
|
114
|
+
(terminal CHAR "18"
|
115
|
+
(alt
|
116
|
+
(range "#x9#xA#xD")
|
117
|
+
(range "#x20-#xD7FF")
|
118
|
+
(range "#xE000-#xFFFD")
|
119
|
+
(range "#x10000-#x10FFFF")) )
|
120
|
+
(terminal R_CHAR "19" (diff CHAR (alt "]" "-" HEX)))
|
121
|
+
(terminal POSTFIX "20" (range "?*+"))
|
122
|
+
(terminal PASS "21"
|
123
|
+
(alt
|
124
|
+
(range "#x9#xA#xD#x20")
|
125
|
+
(seq (alt (diff "#" "#x") "//") (star (range "^#xA#xD")))
|
126
|
+
(seq "/*" (star (alt (opt (seq "*" (range "^/"))) (range "^*"))) "*/")
|
127
|
+
(seq "(*" (star (alt (opt (seq "*" (range "^)"))) (range "^*"))) "*)")) )
|
128
|
+
(pass _pass (seq PASS))
|
129
|
+
(rule _ebnf_3 "1.3" (first "@pass" "@terminals" LHS _eps) (follow _eof) (seq ebnf))
|
130
|
+
(rule _rule_1 "3.1"
|
131
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
132
|
+
(follow "@pass" "@terminals" LHS _eof)
|
133
|
+
(seq expression))
|
134
|
+
(rule _alt_4 "5.4"
|
135
|
+
(first _eps "|")
|
136
|
+
(follow ")" "@pass" "@terminals" LHS _eof)
|
137
|
+
(seq _alt_1))
|
138
|
+
(rule _alt_5 "5.5"
|
139
|
+
(first _eps "|")
|
140
|
+
(follow ")" "@pass" "@terminals" LHS _eof)
|
141
|
+
(seq _alt_1))
|
142
|
+
(rule _alt_6 "5.6"
|
143
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
144
|
+
(follow ")" "@pass" "@terminals" LHS _eof "|")
|
145
|
+
(seq seq))
|
146
|
+
(rule _seq_3 "6.3"
|
147
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL _eps)
|
148
|
+
(follow ")" "@pass" "@terminals" LHS _eof "|")
|
149
|
+
(seq _seq_1))
|
150
|
+
(rule _seq_4 "6.4"
|
151
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL _eps)
|
152
|
+
(follow ")" "@pass" "@terminals" LHS _eof "|")
|
153
|
+
(seq _seq_1))
|
154
|
+
(rule _diff_3 "7.3"
|
155
|
+
(first "-" _eps)
|
156
|
+
(follow "(" ")" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2
|
157
|
+
SYMBOL _eof "|" )
|
158
|
+
(seq _diff_1))
|
159
|
+
(rule _diff_4 "7.4"
|
160
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
161
|
+
(follow "(" ")" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1 STRING2
|
162
|
+
SYMBOL _eof "|" )
|
163
|
+
(seq postfix))
|
164
|
+
(rule _postfix_2 "8.2"
|
165
|
+
(first POSTFIX _eps)
|
166
|
+
(follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE RANGE STRING1
|
167
|
+
STRING2 SYMBOL _eof "|" )
|
168
|
+
(seq _postfix_1))
|
169
|
+
(rule _primary_2 "9.2"
|
170
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
171
|
+
(follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE POSTFIX RANGE
|
172
|
+
STRING1 STRING2 SYMBOL _eof "|" )
|
173
|
+
(seq expression ")"))
|
174
|
+
(rule _pass_1 "10.1"
|
175
|
+
(first "(" HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
176
|
+
(follow "@pass" "@terminals" LHS _eof)
|
177
|
+
(seq expression))
|
178
|
+
(rule _primary_3 "9.3"
|
179
|
+
(first ")")
|
180
|
+
(follow "(" ")" "-" "@pass" "@terminals" HEX LHS O_RANGE POSTFIX RANGE
|
181
|
+
STRING1 STRING2 SYMBOL _eof "|" )
|
182
|
+
(seq ")")) )
|