summaryrefslogtreecommitdiff
path: root/grammar-ll1.txt
blob: 9487bd1c661898698cf8410b52ec797cac5640c8 (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
31
32
33
34
35
36
37
38
39
40
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