 | expr_part
  expr_part ::= expr ';'
  expr      ::= expr '+' expr | expr '-' expr | expr '*' expr 
	      | expr '/' expr | expr '%' expr | '(' expr ')'  
              | '-' expr | number 
</pre>
To specify a parser based on this grammar, our first step is to identify and
name the set of terminal symbols that will appear on input, and the set of 
non-terminal symbols.  In this case, the non-terminals are: 

<pre><tt>  expr_list, expr_part </tt> and <tt> expr </tt>.</pre>

For terminal names we might choo