summaryrefslogtreecommitdiff
path: root/grammar-ll1.txt
blob: 4e97893fd2c0c0b7e862a9b2417451fbc85ad02d (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
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         ::=     PROD-EXP PLUS-EXP'
  PLUS-EXP'   ::= "+" PROD-EXP PLUS-EXP'
  PLUS-EXP'   ::=
  PROD-EXP    ::=     SINGLE-EXP PROD-EXP'
  PROD-EXP'   ::= "*" SINGLE-EXP PROD-EXP'
  PROD-EXP'   ::=
  SINGLE-EXP  ::= "-" SINGLE-EXP
  SINGLE-EXP  ::= ID
  SINGLE-EXP  ::= NAT
  SINGLE-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 ::=