projects
/
sbp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
checkpoint
[sbp.git]
/
tests
/
meta.g
diff --git
a/tests/meta.g
b/tests/meta.g
index
0920a7a
..
138ec62
100644
(file)
--- a/
tests/meta.g
+++ b/
tests/meta.g
@@
-1,27
+1,32
@@
-s ::= w* Grammar w* => "gram"
-Grammar ::= R+ => "grammar"
-R ::= word ^"::=" Class+/gt
- | word ^"!::=" Class+/gt
+s ::= ws grammar ws => "gram"
+ws !::= w**
+grammar ::= r+/ws => "grammar"
+r ::= word ^"::=" alternatives /ws
+ | word ^"!::=" alternatives /ws
ec ::= [~\]\\\-\~] | escaped
ec ::= [~\]\\\-\~] | escaped
-Class ::= Rewrite +/ bar => "alternatives"
+alternatives ::= equiAlt +/ (ws ">" ws)
+equiAlt ::= conjuncts +/ (ws "|" ws) => "alternatives"
-Rewrite ::= Rewritex
- | Rewritex ^"&" E+
- | Rewritex ^"&~" E+
+sequence ::= Es
+ > Es ^"/" E /ws
+Es ::= E+
+//es ::= E+/ws
-Rewritex ::= E+ => "rewrite"
- | E+ ^"=>" word
- | E+ ^"=>" quoted
- | E+ "=>" "()" => "wrap"
+conjuncts ::= rewrite
+ | rewrite ^"&" sequence /ws
+ | rewrite ^"&~" sequence /ws
+
+rewrite ::= sequence /ws => "rewrite"
+ | sequence ^"=>" word /ws
+ | sequence ^"=>" quoted /ws
+ | sequence "=>" "()" /ws => "wrap"
range ::= ec => "range0" | ec ^"-" ec => "range0"
range ::= ec => "range0" | ec ^"-" ec => "range0"
-gt !::= ">"
-bar !::= "|"
E ::= word => "nonTerminalY"
| [(][)] => "epsilon"
E ::= word => "nonTerminalY"
| [(][)] => "epsilon"
- | ^"{" Class+/gt "}"
+ | ^"{" alternatives "}"
| "[" [\~]? range* "]" => "range"
| E ^"*/" E
| E ^"+/" E
| "[" [\~]? range* "]" => "range"
| E ^"*/" E
| E ^"+/" E
@@
-40,7
+45,7
@@
E ::= word => "nonTerminalY"
| (E ^"++" > E ^"+")
| "(" word ^")"
| (E ^"++" > E ^"+")
| "(" word ^")"
- > ^"(" Class+/gt ")"
+ > ^"(" alternatives ")"
w !::= " "
| "//" [~\n]* "\n"
w !::= " "
| "//" [~\n]* "\n"