summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Wu <peter@lekensteyn.nl>2016-05-07 20:03:44 +0200
committerPeter Wu <peter@lekensteyn.nl>2016-05-07 20:03:44 +0200
commit1505dd49aec92d98d7226d970b1ccd9420558ebf (patch)
treea785078c9f3953d09f0d3787d387b8dd60951244
parent3ce91e23776716ca376d5afbb11d57e5198c1098 (diff)
downloadRegexTest-1505dd49aec92d98d7226d970b1ccd9420558ebf.tar.gz
Initialize LL(1) grammar from current grammar
-rw-r--r--grammar-ll1.txt41
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