ebnf 2.3.5 → 2.5.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.
- checksums.yaml +4 -4
- data/README.md +5 -1
- data/VERSION +1 -1
- data/etc/abnf.sxp +1 -1
- data/etc/ebnf.html +13 -13
- data/etc/ebnf.ll1.rb +1 -1
- data/etc/ebnf.ll1.sxp +94 -94
- data/etc/ebnf.peg.rb +1 -1
- data/etc/ebnf.peg.sxp +29 -29
- data/etc/ebnf.sxp +18 -18
- data/etc/iso-ebnf.sxp +27 -27
- data/etc/sparql.sxp +195 -195
- data/etc/turtle.ebnf +70 -67
- data/etc/turtle.html +56 -106
- data/etc/turtle.peg.sxp +182 -191
- data/etc/turtle.sxp +64 -70
- data/lib/ebnf/abnf.rb +3 -3
- data/lib/ebnf/base.rb +1 -1
- data/lib/ebnf/isoebnf.rb +1 -1
- data/lib/ebnf/native.rb +3 -2
- data/lib/ebnf/parser.rb +4 -2
- data/lib/ebnf/rule.rb +1 -2
- data/lib/ebnf/unescape.rb +1 -1
- data/lib/ebnf/writer.rb +9 -7
- data/lib/ebnf.rb +2 -0
- metadata +16 -23
- data/etc/sparql.html +0 -1425
- data/etc/sparql.ll1.sxp +0 -7372
- data/etc/sparql.peg.rb +0 -532
- data/etc/sparql.peg.sxp +0 -597
- data/etc/turtle.ll1.rb +0 -1482
- data/etc/turtle.ll1.sxp +0 -425
- data/etc/turtle.peg.rb +0 -182
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 76a49d9fe4e2cf23f7bde8a55f600bfad24d0f3e55ecaf8a9c0a2e21b7e1310d
|
4
|
+
data.tar.gz: fbf204b9ff0bbe4dff0056ba75c6ed535269584bac336d041f904d2d3fb2e571
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74963a92956d8cbf2fe24f6df8fe0584667f941f42fd523c8a5e3f7f39f3bd0c74eaf8480ed22cc54d358cfd350630fcd6c84449dfff6591dc41e95174fd06b9
|
7
|
+
data.tar.gz: 02c0844b57ffd898764a4cd3dd163105b8e4d32f34df20f3874b2f7dd2590e14ddff98d72f8fd40f2573897f858327ba7eee8e6cff21f551f9882a9c4f82514f
|
data/README.md
CHANGED
@@ -250,6 +250,10 @@ and [First Follow Notation-3 rules](https://www.w3.org/2000/10/swap/grammar/firs
|
|
250
250
|
## Documentation
|
251
251
|
Full documentation available on [Rubydoc.info][EBNF doc].
|
252
252
|
|
253
|
+
## Change Log
|
254
|
+
|
255
|
+
See [Release Notes on GitHub](https://github.com/dryruby/ebnf/releases)
|
256
|
+
|
253
257
|
## Future Work
|
254
258
|
* Better LL(1) parser tests
|
255
259
|
|
@@ -290,7 +294,7 @@ A copy of the [Turtle EBNF][] and derived parser files are included in the repos
|
|
290
294
|
[ISO/IEC 14977]:https://www.iso.org/standard/26153.html
|
291
295
|
[LL(1)]: https://www.csd.uwo.ca/~moreno//CS447/Lectures/Syntax.html/node14.html
|
292
296
|
[LL(1) Parser]: https://en.wikipedia.org/wiki/LL_parser
|
293
|
-
[Logger]: https://ruby-doc.org/stdlib-
|
297
|
+
[Logger]: https://ruby-doc.org/stdlib-3.0.0/libdoc/logger/rdoc/Logger.html
|
294
298
|
[S-expression]: https://en.wikipedia.org/wiki/S-expression
|
295
299
|
[Tokenizer]: https://en.wikipedia.org/wiki/Lexical_analysis#Tokenizer
|
296
300
|
[Turtle]: https://www.w3.org/TR/2012/WD-turtle-20120710/
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.
|
1
|
+
2.5.0
|
data/etc/abnf.sxp
CHANGED
@@ -28,7 +28,7 @@
|
|
28
28
|
(seq "x" (plus HEXDIG) (opt (alt (plus (seq "." (plus HEXDIG))) (seq "-" (plus HEXDIG))))))
|
29
29
|
(terminal prose_val (seq "<" (star (range "#x20-#x3D#x3F-#x7E")) ">"))
|
30
30
|
(terminal ALPHA (range "#x41-#x5A#x61-#x7A"))
|
31
|
-
(terminal BIT (alt
|
31
|
+
(terminal BIT (alt '0' '1'))
|
32
32
|
(terminal CHAR (range "#x01-#x7F"))
|
33
33
|
(terminal CR (hex "#x0D"))
|
34
34
|
(terminal CRLF (seq (opt CR) LF))
|
data/etc/ebnf.html
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
<!-- Generated with ebnf version 2.
|
1
|
+
<!-- Generated with ebnf version 2.4.0. See https://github.com/dryruby/ebnf. -->
|
2
2
|
<table class="grammar">
|
3
3
|
<tbody id="grammar-productions" class="ebnf">
|
4
4
|
<tr id="grammar-production-ebnf">
|
@@ -11,7 +11,7 @@
|
|
11
11
|
<td>[2]</td>
|
12
12
|
<td><code>declaration</code></td>
|
13
13
|
<td>::=</td>
|
14
|
-
<td>
|
14
|
+
<td>'<code class="grammar-literal">@terminals</code>' <code class="grammar-alt">|</code> <a href="#grammar-production-pass">pass</a></td>
|
15
15
|
</tr>
|
16
16
|
<tr id="grammar-production-rule">
|
17
17
|
<td>[3]</td>
|
@@ -29,7 +29,7 @@
|
|
29
29
|
<td>[5]</td>
|
30
30
|
<td><code>alt</code></td>
|
31
31
|
<td>::=</td>
|
32
|
-
<td><a href="#grammar-production-seq">seq</a> <code class="grammar-paren">(</code>
|
32
|
+
<td><a href="#grammar-production-seq">seq</a> <code class="grammar-paren">(</code>'<code class="grammar-literal">|</code>' <a href="#grammar-production-seq">seq</a><code class="grammar-paren">)</code><code class="grammar-star">*</code></td>
|
33
33
|
</tr>
|
34
34
|
<tr id="grammar-production-seq">
|
35
35
|
<td>[6]</td>
|
@@ -41,7 +41,7 @@
|
|
41
41
|
<td>[7]</td>
|
42
42
|
<td><code>diff</code></td>
|
43
43
|
<td>::=</td>
|
44
|
-
<td><a href="#grammar-production-postfix">postfix</a> <code class="grammar-paren">(</code>
|
44
|
+
<td><a href="#grammar-production-postfix">postfix</a> <code class="grammar-paren">(</code>'<code class="grammar-literal">-</code>' <a href="#grammar-production-postfix">postfix</a><code class="grammar-paren">)</code><code class="grammar-opt">?</code></td>
|
45
45
|
</tr>
|
46
46
|
<tr id="grammar-production-postfix">
|
47
47
|
<td>[8]</td>
|
@@ -53,13 +53,13 @@
|
|
53
53
|
<td>[9]</td>
|
54
54
|
<td><code>primary</code></td>
|
55
55
|
<td>::=</td>
|
56
|
-
<td><a href="#grammar-production-HEX">HEX</a> <code class="grammar-alt">|</code> <a href="#grammar-production-SYMBOL">SYMBOL</a> <code class="grammar-alt">|</code> <a href="#grammar-production-O_RANGE">O_RANGE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-RANGE">RANGE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING1">STRING1</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING2">STRING2</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>
|
56
|
+
<td><a href="#grammar-production-HEX">HEX</a> <code class="grammar-alt">|</code> <a href="#grammar-production-SYMBOL">SYMBOL</a> <code class="grammar-alt">|</code> <a href="#grammar-production-O_RANGE">O_RANGE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-RANGE">RANGE</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING1">STRING1</a> <code class="grammar-alt">|</code> <a href="#grammar-production-STRING2">STRING2</a> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>'<code class="grammar-literal">(</code>' <a href="#grammar-production-expression">expression</a> '<code class="grammar-literal">)</code>'<code class="grammar-paren">)</code></td>
|
57
57
|
</tr>
|
58
58
|
<tr id="grammar-production-pass">
|
59
59
|
<td>[10]</td>
|
60
60
|
<td><code>pass</code></td>
|
61
61
|
<td>::=</td>
|
62
|
-
<td>
|
62
|
+
<td>'<code class="grammar-literal">@pass</code>' <a href="#grammar-production-expression">expression</a></td>
|
63
63
|
</tr>
|
64
64
|
<tr id="grammar-declaration-terminals">
|
65
65
|
<td>@terminals</td>
|
@@ -71,31 +71,31 @@
|
|
71
71
|
<td>[11]</td>
|
72
72
|
<td><code>LHS</code></td>
|
73
73
|
<td>::=</td>
|
74
|
-
<td><code class="grammar-paren">(</code>
|
74
|
+
<td><code class="grammar-paren">(</code>'<code class="grammar-literal">[</code>' <a href="#grammar-production-SYMBOL">SYMBOL</a> '<code class="grammar-literal">]</code>' <code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-plus">+</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code> <a href="#grammar-production-SYMBOL">SYMBOL</a> <code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-star">*</code> '<code class="grammar-literal">::=</code>'</td>
|
75
75
|
</tr>
|
76
76
|
<tr id="grammar-production-SYMBOL">
|
77
77
|
<td>[12]</td>
|
78
78
|
<td><code>SYMBOL</code></td>
|
79
79
|
<td>::=</td>
|
80
|
-
<td><code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">a-z</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">A-Z</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code>
|
80
|
+
<td><code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">a-z</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">A-Z</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> '<code class="grammar-literal">_</code>' <code class="grammar-alt">|</code> '<code class="grammar-literal">.</code>'<code class="grammar-paren">)</code><code class="grammar-plus">+</code></td>
|
81
81
|
</tr>
|
82
82
|
<tr id="grammar-production-HEX">
|
83
83
|
<td>[13]</td>
|
84
84
|
<td><code>HEX</code></td>
|
85
85
|
<td>::=</td>
|
86
|
-
<td>
|
86
|
+
<td>'<code class="grammar-literal">#x</code>' <code class="grammar-paren">(</code><code class="grammar-brac">[</code><code class="grammar-literal">a-f</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">A-F</code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">0-9</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code><code class="grammar-plus">+</code></td>
|
87
87
|
</tr>
|
88
88
|
<tr id="grammar-production-RANGE">
|
89
89
|
<td>[14]</td>
|
90
90
|
<td><code>RANGE</code></td>
|
91
91
|
<td>::=</td>
|
92
|
-
<td>
|
92
|
+
<td>'<code class="grammar-literal">[</code>' <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-R_CHAR">R_CHAR</a> '<code class="grammar-literal">-</code>' <a href="#grammar-production-R_CHAR">R_CHAR</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-HEX">HEX</a> '<code class="grammar-literal">-</code>' <a href="#grammar-production-HEX">HEX</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <a href="#grammar-production-R_CHAR">R_CHAR</a> <code class="grammar-alt">|</code> <a href="#grammar-production-HEX">HEX</a><code class="grammar-paren">)</code><code class="grammar-plus">+</code> '<code class="grammar-literal">-</code>'<code class="grammar-opt">?</code> <code class="grammar-paren">(</code>'<code class="grammar-literal">]</code>' <code class="grammar-diff">-</code> <a href="#grammar-production-LHS">LHS</a><code class="grammar-paren">)</code></td>
|
93
93
|
</tr>
|
94
94
|
<tr id="grammar-production-O_RANGE">
|
95
95
|
<td>[15]</td>
|
96
96
|
<td><code>O_RANGE</code></td>
|
97
97
|
<td>::=</td>
|
98
|
-
<td>
|
98
|
+
<td>'<code class="grammar-literal">[^</code>' <code class="grammar-paren">(</code><code class="grammar-paren">(</code><a href="#grammar-production-R_CHAR">R_CHAR</a> '<code class="grammar-literal">-</code>' <a href="#grammar-production-R_CHAR">R_CHAR</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><a href="#grammar-production-HEX">HEX</a> '<code class="grammar-literal">-</code>' <a href="#grammar-production-HEX">HEX</a><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <a href="#grammar-production-R_CHAR">R_CHAR</a> <code class="grammar-alt">|</code> <a href="#grammar-production-HEX">HEX</a><code class="grammar-paren">)</code><code class="grammar-plus">+</code> '<code class="grammar-literal">-</code>'<code class="grammar-opt">?</code> '<code class="grammar-literal">]</code>'</td>
|
99
99
|
</tr>
|
100
100
|
<tr id="grammar-production-STRING1">
|
101
101
|
<td>[16]</td>
|
@@ -119,7 +119,7 @@
|
|
119
119
|
<td>[19]</td>
|
120
120
|
<td><code>R_CHAR</code></td>
|
121
121
|
<td>::=</td>
|
122
|
-
<td><a href="#grammar-production-CHAR">CHAR</a> <code class="grammar-diff">-</code> <code class="grammar-paren">(</code>
|
122
|
+
<td><a href="#grammar-production-CHAR">CHAR</a> <code class="grammar-diff">-</code> <code class="grammar-paren">(</code>'<code class="grammar-literal">]</code>' <code class="grammar-alt">|</code> '<code class="grammar-literal">-</code>' <code class="grammar-alt">|</code> <a href="#grammar-production-HEX">HEX</a><code class="grammar-paren">)</code></td>
|
123
123
|
</tr>
|
124
124
|
<tr id="grammar-production-POSTFIX">
|
125
125
|
<td>[20]</td>
|
@@ -131,7 +131,7 @@
|
|
131
131
|
<td>[21]</td>
|
132
132
|
<td><code>PASS</code></td>
|
133
133
|
<td>::=</td>
|
134
|
-
<td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="horizontal tab">#x09</abbr></code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><code class="grammar-paren">(</code>
|
134
|
+
<td><code class="grammar-brac">[</code><code class="grammar-char-escape"><abbr title="horizontal tab">#x09</abbr></code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code class="grammar-char-escape"><abbr title="space">#x20</abbr></code><code class="grammar-brac">]</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code><code class="grammar-paren">(</code><code class="grammar-paren">(</code>'<code class="grammar-literal">#</code>' <code class="grammar-diff">-</code> '<code class="grammar-literal">#x</code>'<code class="grammar-paren">)</code> <code class="grammar-alt">|</code> '<code class="grammar-literal">//</code>'<code class="grammar-paren">)</code> <code class="grammar-brac">[</code><code class="grammar-literal">^</code><code class="grammar-char-escape"><abbr title="new line">#x0A</abbr></code><code class="grammar-char-escape"><abbr title="carriage return">#x0D</abbr></code><code class="grammar-brac">]</code><code class="grammar-star">*</code><code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>'<code class="grammar-literal">/*</code>' <code class="grammar-paren">(</code><code class="grammar-paren">(</code>'<code class="grammar-literal">*</code>' <code class="grammar-brac">[</code><code class="grammar-literal">^/</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">^*</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code><code class="grammar-star">*</code> '<code class="grammar-literal">*/</code>'<code class="grammar-paren">)</code> <code class="grammar-alt">|</code> <code class="grammar-paren">(</code>'<code class="grammar-literal">(*</code>' <code class="grammar-paren">(</code><code class="grammar-paren">(</code>'<code class="grammar-literal">*</code>' <code class="grammar-brac">[</code><code class="grammar-literal">^)</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code><code class="grammar-opt">?</code> <code class="grammar-alt">|</code> <code class="grammar-brac">[</code><code class="grammar-literal">^*</code><code class="grammar-brac">]</code><code class="grammar-paren">)</code><code class="grammar-star">*</code> '<code class="grammar-literal">*)</code>'<code class="grammar-paren">)</code></td>
|
135
135
|
</tr>
|
136
136
|
<tr id="grammar-declaration-pass">
|
137
137
|
<td>@pass</td>
|
data/etc/ebnf.ll1.rb
CHANGED
data/etc/ebnf.ll1.sxp
CHANGED
@@ -2,114 +2,114 @@
|
|
2
2
|
(rule _empty "0" (first _eps) (seq))
|
3
3
|
(rule ebnf "1"
|
4
4
|
(start #t)
|
5
|
-
(first
|
5
|
+
(first '@pass' '@terminals' LHS _eps)
|
6
6
|
(follow _eof)
|
7
7
|
(cleanup star)
|
8
8
|
(alt _empty _ebnf_2))
|
9
9
|
(rule _ebnf_2 "1.2"
|
10
|
-
(first
|
10
|
+
(first '@pass' '@terminals' LHS)
|
11
11
|
(follow _eof)
|
12
12
|
(cleanup merge)
|
13
13
|
(seq _ebnf_1 ebnf))
|
14
14
|
(rule _ebnf_1 "1.1"
|
15
|
-
(first
|
16
|
-
(follow
|
15
|
+
(first '@pass' '@terminals' LHS)
|
16
|
+
(follow '@pass' '@terminals' LHS _eof)
|
17
17
|
(alt declaration rule))
|
18
18
|
(rule declaration "2"
|
19
|
-
(first
|
20
|
-
(follow
|
21
|
-
(alt
|
22
|
-
(rule rule "3" (first LHS) (follow
|
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
23
|
(rule expression "4"
|
24
|
-
(first
|
25
|
-
(follow
|
24
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
25
|
+
(follow ')' '@pass' '@terminals' LHS _eof)
|
26
26
|
(seq alt))
|
27
27
|
(rule alt "5"
|
28
|
-
(first
|
29
|
-
(follow
|
28
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
29
|
+
(follow ')' '@pass' '@terminals' LHS _eof)
|
30
30
|
(seq seq _alt_1))
|
31
31
|
(rule _alt_1 "5.1"
|
32
|
-
(first _eps
|
33
|
-
(follow
|
32
|
+
(first _eps '|')
|
33
|
+
(follow ')' '@pass' '@terminals' LHS _eof)
|
34
34
|
(cleanup star)
|
35
35
|
(alt _empty _alt_3))
|
36
36
|
(rule _alt_3 "5.3"
|
37
|
-
(first
|
38
|
-
(follow
|
37
|
+
(first '|')
|
38
|
+
(follow ')' '@pass' '@terminals' LHS _eof)
|
39
39
|
(cleanup merge)
|
40
40
|
(seq _alt_2 _alt_1))
|
41
41
|
(rule _alt_2 "5.2"
|
42
|
-
(first
|
43
|
-
(follow
|
44
|
-
(seq
|
42
|
+
(first '|')
|
43
|
+
(follow ')' '@pass' '@terminals' LHS _eof '|')
|
44
|
+
(seq '|' seq))
|
45
45
|
(rule seq "6"
|
46
|
-
(first
|
47
|
-
(follow
|
46
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
47
|
+
(follow ')' '@pass' '@terminals' LHS _eof '|')
|
48
48
|
(cleanup plus)
|
49
49
|
(seq diff _seq_1))
|
50
50
|
(rule _seq_1 "6.1"
|
51
|
-
(first
|
52
|
-
(follow
|
51
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL _eps)
|
52
|
+
(follow ')' '@pass' '@terminals' LHS _eof '|')
|
53
53
|
(cleanup star)
|
54
54
|
(alt _empty _seq_2))
|
55
55
|
(rule _seq_2 "6.2"
|
56
|
-
(first
|
57
|
-
(follow
|
56
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
57
|
+
(follow ')' '@pass' '@terminals' LHS _eof '|')
|
58
58
|
(cleanup merge)
|
59
59
|
(seq diff _seq_1))
|
60
60
|
(rule diff "7"
|
61
|
-
(first
|
62
|
-
(follow
|
63
|
-
SYMBOL _eof
|
61
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
62
|
+
(follow '(' ')' '@pass' '@terminals' HEX LHS O_RANGE RANGE STRING1 STRING2
|
63
|
+
SYMBOL _eof '|' )
|
64
64
|
(seq postfix _diff_1))
|
65
65
|
(rule _diff_1 "7.1"
|
66
|
-
(first
|
67
|
-
(follow
|
68
|
-
SYMBOL _eof
|
66
|
+
(first '-' _eps)
|
67
|
+
(follow '(' ')' '@pass' '@terminals' HEX LHS O_RANGE RANGE STRING1 STRING2
|
68
|
+
SYMBOL _eof '|' )
|
69
69
|
(cleanup opt)
|
70
70
|
(alt _empty _diff_2))
|
71
71
|
(rule _diff_2 "7.2"
|
72
|
-
(first
|
73
|
-
(follow
|
74
|
-
SYMBOL _eof
|
75
|
-
(seq
|
72
|
+
(first '-')
|
73
|
+
(follow '(' ')' '@pass' '@terminals' HEX LHS O_RANGE RANGE STRING1 STRING2
|
74
|
+
SYMBOL _eof '|' )
|
75
|
+
(seq '-' postfix))
|
76
76
|
(rule postfix "8"
|
77
|
-
(first
|
78
|
-
(follow
|
79
|
-
STRING2 SYMBOL _eof
|
77
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
78
|
+
(follow '(' ')' '-' '@pass' '@terminals' HEX LHS O_RANGE RANGE STRING1
|
79
|
+
STRING2 SYMBOL _eof '|' )
|
80
80
|
(seq primary _postfix_1))
|
81
81
|
(rule _postfix_1 "8.1"
|
82
82
|
(first POSTFIX _eps)
|
83
|
-
(follow
|
84
|
-
STRING2 SYMBOL _eof
|
83
|
+
(follow '(' ')' '-' '@pass' '@terminals' HEX LHS O_RANGE RANGE STRING1
|
84
|
+
STRING2 SYMBOL _eof '|' )
|
85
85
|
(cleanup opt)
|
86
86
|
(alt _empty POSTFIX))
|
87
87
|
(rule primary "9"
|
88
|
-
(first
|
89
|
-
(follow
|
90
|
-
STRING1 STRING2 SYMBOL _eof
|
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
91
|
(alt HEX SYMBOL O_RANGE RANGE STRING1 STRING2 _primary_1))
|
92
92
|
(rule _primary_1 "9.1"
|
93
|
-
(first
|
94
|
-
(follow
|
95
|
-
STRING1 STRING2 SYMBOL _eof
|
96
|
-
(seq
|
93
|
+
(first '(')
|
94
|
+
(follow '(' ')' '-' '@pass' '@terminals' HEX LHS O_RANGE POSTFIX RANGE
|
95
|
+
STRING1 STRING2 SYMBOL _eof '|' )
|
96
|
+
(seq '(' expression ')'))
|
97
97
|
(rule pass "10"
|
98
|
-
(first
|
99
|
-
(follow
|
100
|
-
(seq
|
98
|
+
(first '@pass')
|
99
|
+
(follow '@pass' '@terminals' LHS _eof)
|
100
|
+
(seq '@pass' expression))
|
101
101
|
(terminals _terminals (seq))
|
102
|
-
(terminal LHS "11" (seq (opt (seq
|
103
|
-
(terminal SYMBOL "12" (plus (alt (range "a-z") (range "A-Z") (range "0-9")
|
104
|
-
(terminal HEX "13" (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
105
|
(terminal RANGE "14"
|
106
|
-
(seq
|
107
|
-
(plus (alt (seq R_CHAR
|
108
|
-
(opt
|
109
|
-
(diff
|
106
|
+
(seq '['
|
107
|
+
(plus (alt (seq R_CHAR '-' R_CHAR) (seq HEX '-' HEX) R_CHAR HEX))
|
108
|
+
(opt '-')
|
109
|
+
(diff ']' LHS)) )
|
110
110
|
(terminal O_RANGE "15"
|
111
|
-
(seq
|
112
|
-
(terminal STRING1 "16" (seq "
|
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
113
|
(terminal STRING2 "17" (seq "'" (star (diff CHAR "'")) "'"))
|
114
114
|
(terminal CHAR "18"
|
115
115
|
(alt
|
@@ -117,66 +117,66 @@
|
|
117
117
|
(range "#x20-#xD7FF")
|
118
118
|
(range "#xE000-#xFFFD")
|
119
119
|
(range "#x10000-#x10FFFF")) )
|
120
|
-
(terminal R_CHAR "19" (diff CHAR (alt
|
120
|
+
(terminal R_CHAR "19" (diff CHAR (alt ']' '-' HEX)))
|
121
121
|
(terminal POSTFIX "20" (range "?*+"))
|
122
122
|
(terminal PASS "21"
|
123
123
|
(alt
|
124
124
|
(range "#x9#xA#xD#x20")
|
125
|
-
(seq (alt (diff
|
126
|
-
(seq
|
127
|
-
(seq
|
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
128
|
(pass _pass (seq PASS))
|
129
|
-
(rule _ebnf_3 "1.3" (first
|
129
|
+
(rule _ebnf_3 "1.3" (first '@pass' '@terminals' LHS _eps) (follow _eof) (seq ebnf))
|
130
130
|
(rule _rule_1 "3.1"
|
131
|
-
(first
|
132
|
-
(follow
|
131
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
132
|
+
(follow '@pass' '@terminals' LHS _eof)
|
133
133
|
(seq expression))
|
134
134
|
(rule _alt_4 "5.4"
|
135
|
-
(first _eps
|
136
|
-
(follow
|
135
|
+
(first _eps '|')
|
136
|
+
(follow ')' '@pass' '@terminals' LHS _eof)
|
137
137
|
(seq _alt_1))
|
138
138
|
(rule _alt_5 "5.5"
|
139
|
-
(first _eps
|
140
|
-
(follow
|
139
|
+
(first _eps '|')
|
140
|
+
(follow ')' '@pass' '@terminals' LHS _eof)
|
141
141
|
(seq _alt_1))
|
142
142
|
(rule _alt_6 "5.6"
|
143
|
-
(first
|
144
|
-
(follow
|
143
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
144
|
+
(follow ')' '@pass' '@terminals' LHS _eof '|')
|
145
145
|
(seq seq))
|
146
146
|
(rule _seq_3 "6.3"
|
147
|
-
(first
|
148
|
-
(follow
|
147
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL _eps)
|
148
|
+
(follow ')' '@pass' '@terminals' LHS _eof '|')
|
149
149
|
(seq _seq_1))
|
150
150
|
(rule _seq_4 "6.4"
|
151
|
-
(first
|
152
|
-
(follow
|
151
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL _eps)
|
152
|
+
(follow ')' '@pass' '@terminals' LHS _eof '|')
|
153
153
|
(seq _seq_1))
|
154
154
|
(rule _diff_3 "7.3"
|
155
|
-
(first
|
156
|
-
(follow
|
157
|
-
SYMBOL _eof
|
155
|
+
(first '-' _eps)
|
156
|
+
(follow '(' ')' '@pass' '@terminals' HEX LHS O_RANGE RANGE STRING1 STRING2
|
157
|
+
SYMBOL _eof '|' )
|
158
158
|
(seq _diff_1))
|
159
159
|
(rule _diff_4 "7.4"
|
160
|
-
(first
|
161
|
-
(follow
|
162
|
-
SYMBOL _eof
|
160
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
161
|
+
(follow '(' ')' '@pass' '@terminals' HEX LHS O_RANGE RANGE STRING1 STRING2
|
162
|
+
SYMBOL _eof '|' )
|
163
163
|
(seq postfix))
|
164
164
|
(rule _postfix_2 "8.2"
|
165
165
|
(first POSTFIX _eps)
|
166
|
-
(follow
|
167
|
-
STRING2 SYMBOL _eof
|
166
|
+
(follow '(' ')' '-' '@pass' '@terminals' HEX LHS O_RANGE RANGE STRING1
|
167
|
+
STRING2 SYMBOL _eof '|' )
|
168
168
|
(seq _postfix_1))
|
169
169
|
(rule _primary_2 "9.2"
|
170
|
-
(first
|
171
|
-
(follow
|
172
|
-
STRING1 STRING2 SYMBOL _eof
|
173
|
-
(seq expression
|
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
174
|
(rule _pass_1 "10.1"
|
175
|
-
(first
|
176
|
-
(follow
|
175
|
+
(first '(' HEX O_RANGE RANGE STRING1 STRING2 SYMBOL)
|
176
|
+
(follow '@pass' '@terminals' LHS _eof)
|
177
177
|
(seq expression))
|
178
178
|
(rule _primary_3 "9.3"
|
179
|
-
(first
|
180
|
-
(follow
|
181
|
-
STRING1 STRING2 SYMBOL _eof
|
182
|
-
(seq
|
179
|
+
(first ')')
|
180
|
+
(follow '(' ')' '-' '@pass' '@terminals' HEX LHS O_RANGE POSTFIX RANGE
|
181
|
+
STRING1 STRING2 SYMBOL _eof '|' )
|
182
|
+
(seq ')')) )
|
data/etc/ebnf.peg.rb
CHANGED