Document last modified:
<S> ::= <NP> <V> <NP>
<NP> ::= <A> <N>
<V> ::= loves | hates | climbs
<A> ::= a | the
<N> ::= dog | cat | tree
| a
dog climbs a tree
<S> / | \ <NP> <V> <NP> / | \ <A><N> climbs <A><N> | | | | a dog a tree |
the dog loves the dog cat <S> / | \ <NP> <V> <NP> / | \ <A> <N> loves <A><N> | | | | the dog the dog cat Fails |
| <exp> = <exp>*<exp> = <exp>*<exp>+<exp> = a * b + c |
<exp> / | \ <exp>*<exp> | / | \ a <exp> + <exp> | | b c |
<exp> = <exp>*<exp>
=
<exp>*(<exp>)
=
<exp>*(<exp>+<exp>)
= a * (b + c)
<exp> = <exp>*<exp> |
<exp> / | \ <exp>*<exp> | | a ( <exp> ) / | \ <exp> + <exp> | | b c |
<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 |
7 | 8 | 9
<unsigned> ::= <digit> | <unsigned> <digit>
<signed> ::= +<unsigned> | -<unsigned>
<integer> ::= <unsigned> | <signed>
<decimal> ::= <integer> . | <integer> . <unsigned>
Define in BNF:
<number> ::= <integer> | <decimal>
<scientific> ::= <number>E<integer>
<small number> ::= <digit> | <digit> <digit> | <digit> <digit> <digit>
<identifier> ::= <alpha> | <identifier> <alpha> | <identifier> <digit>