Grammar for Additive Expressions
auxiliary Ï E stands for Expression
symbols Ó V stands for Variable
Quoted symbols are literal
Grammar Rules
V Þ 'a' | 'b' | 'c' (say)
E Þ V
E Þ V '+' E
a + b + c
not a V
V + E
if b+c is an E
þ
V+E
b+V
Unlike programs, grammars are generative (non-deterministic)
The rules generate all possible expressions:
a
b
c
a+a
a+b
a+c
b+a
:
c+c
a+a+a
a+a+b
: