blob: 0a7a66e886380818f89a73e4005e840bfbc6a7ca (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
start-symbol PROGRAM
context-free syntax
PROGRAM ::= "begin" DECLS "|" (STATEMENT ";")* "end"
DECLS ::= "declare" (ID ",")*
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][a-z0-9]*
lexical syntax
NAT ::= [0] | [1-9][0-9]*
lexical syntax
LAYOUT ::= [\ \n]*
context-free priorities
EXP ::= "-" EXP >
EXP ::= "*" EXP >
EXP ::= "+" EXP
|