diff options
author | Peter Wu <peter@lekensteyn.nl> | 2016-05-07 20:03:44 +0200 |
---|---|---|
committer | Peter Wu <peter@lekensteyn.nl> | 2016-05-07 20:03:44 +0200 |
commit | 1505dd49aec92d98d7226d970b1ccd9420558ebf (patch) | |
tree | a785078c9f3953d09f0d3787d387b8dd60951244 | |
parent | 3ce91e23776716ca376d5afbb11d57e5198c1098 (diff) | |
download | RegexTest-1505dd49aec92d98d7226d970b1ccd9420558ebf.tar.gz |
Initialize LL(1) grammar from current grammar
-rw-r--r-- | grammar-ll1.txt | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/grammar-ll1.txt b/grammar-ll1.txt new file mode 100644 index 0000000..9487bd1 --- /dev/null +++ b/grammar-ll1.txt @@ -0,0 +1,41 @@ +start-symbol PROGRAM + +context-free syntax + PROGRAM ::= "begin" DECLS "|" STATEMENTS "end" + DECLS ::= "declare" IDLIST + STATEMENTS ::= STATEMENT ";" + STATEMENTS ::= + IDLIST ::= ID "," + IDLIST ::= + +context-free syntax + STATEMENT ::= ID ":=" EXP + +context-free syntax + EXP ::= ID + EXP ::= NAT + EXP ::= EXP "+" EXP {left} + EXP ::= EXP "*" EXP {left} + EXP ::= "-" EXP + EXP ::= "(" EXP ")" + +lexical syntax + ID ::= [a-z] ID' + ID' ::= [a-z0-9] ID' + ID' ::= + +lexical syntax + NAT ::= [0] + NAT ::= [1-9] NAT' + NAT' ::= [0-9] NAT' + NAT' ::= + +lexical syntax + LAYOUT ::= " " LAYOUT + LAYOUT ::= "\n" LAYOUT + LAYOUT ::= + +context-free priorities + EXP ::= "-" EXP > + EXP ::= EXP "*" EXP > + EXP ::= EXP "+" EXP |