summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--grammar.txt21
1 files changed, 16 insertions, 5 deletions
diff --git a/grammar.txt b/grammar.txt
index 0a7a66e..fe6b235 100644
--- a/grammar.txt
+++ b/grammar.txt
@@ -1,8 +1,12 @@
start-symbol PROGRAM
context-free syntax
- PROGRAM ::= "begin" DECLS "|" (STATEMENT ";")* "end"
- DECLS ::= "declare" (ID ",")*
+ PROGRAM ::= "begin" DECLS "|" STATEMENTS "end"
+ DECLS ::= "declare" IDLIST
+ STATEMENTS ::= STATEMENT ";"
+ STATEMENTS ::=
+ IDLIST ::= ID ","
+ IDLIST ::=
context-free syntax
STATEMENT ::= ID ":=" EXP
@@ -16,13 +20,20 @@ context-free syntax
EXP ::= "(" EXP ")"
lexical syntax
- ID ::= [a-z][a-z0-9]*
+ ID ::= [a-z] ID'
+ ID' ::= [a-z0-9] ID'
+ ID' ::=
lexical syntax
- NAT ::= [0] | [1-9][0-9]*
+ NAT ::= [0]
+ NAT ::= [1-9] NAT'
+ NAT' ::= [0-9] NAT'
+ NAT' ::=
lexical syntax
- LAYOUT ::= [\ \n]*
+ LAYOUT ::= " " LAYOUT
+ LAYOUT ::= "\n" LAYOUT
+ LAYOUT ::=
context-free priorities
EXP ::= "-" EXP >