| Slide 2.4: Context-free grammars vs regular grammars Slide 2.6: Syntax diagrams Home |   | 
whereG= (Σ,N,P,S) = ( {+,-,*,(,),number}, {<exp>,<op>},P,<exp>)
P consists of
<exp> ::= <exp> <op> <exp> | ( <exp> ) | number <op> ::= + | – | *The grammar is context-free because only single nonterminals occur on the left sides of the rules. The hyperlink gives the BNF of Pascal.
 <stmt-sequence> ::= <stmt> ; <stmt-sequence> | <stmt>
 <stmt>          ::= s
                          ⇓
 <stmt-sequence> ::= { <stmt> ; } <stmt> 
 <stmt>          ::= s
 
  <statement> ::= <if-stmt> | other
 <if-stmt>   ::= if ( <exp> ) <statement>
               | if ( <exp> ) <statement> else <statement> 
 <exp>       ::= 0 | 1 
                          ⇓ 
 <statement> ::= <if-stmt> | other 
 <if-stmt>   ::= if ( <exp> ) <statement>
                      [ else <statement> ]
 <exp>       ::= 0 | 1