summaryrefslogtreecommitdiff
path: root/grammar.txt
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