Metody realizacji języków programowania/MRJP Laboratorium/Scrap: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemek (dyskusja | edycje)
Nie podano opisu zmian
 
Przemek (dyskusja | edycje)
Linia 23: Linia 23:
The reserved words used in kotek are the following: \\
The reserved words used in kotek are the following: \\


<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
The symbols used in kotek are the following: \\
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
\subsection*{Comments}
Single-line comments begin with <tt>//</tt>. \\Multiple-line comments are  enclosed with <tt>(*</tt> and <tt>*)</tt>.
\section*{The syntactic structure of kotek}
Non-terminals are enclosed between <math>\langle</math> and <math>\rangle</math>.
The symbols  ::=  (production),  |  (union)
and  (empty rule) belong to the BNF notation.
All other symbols are terminals.\\
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>/</tt>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>/</tt>  </td>
</tr>
<tr>
<td>''OperatorAddytywny'' </td>
<td>::=  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>/</tt>  </td>
</tr>
<tr>
<td>''OperatorAddytywny'' </td>
<td>::=  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazeniePorownania'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorPorownania'' ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>/</tt>  </td>
</tr>
<tr>
<td>''OperatorAddytywny'' </td>
<td>::=  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazeniePorownania'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorPorownania'' ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>''OperatorPorownania'' </td>
<td>::=  </td>
<td><tt>{<math><</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>></math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math><</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>></math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>=</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!{<math>=</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>/</tt>  </td>
</tr>
<tr>
<td>''OperatorAddytywny'' </td>
<td>::=  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazeniePorownania'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorPorownania'' ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>''OperatorPorownania'' </td>
<td>::=  </td>
<td><tt>{<math><</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>></math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math><</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>></math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>=</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!{<math>=</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazenieLogiczne'' </td>
<td>::=  </td>
<td>''WyrazeniePorownania'' ''OperatorLogiczny'' ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>/</tt>  </td>
</tr>
<tr>
<td>''OperatorAddytywny'' </td>
<td>::=  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazeniePorownania'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorPorownania'' ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>''OperatorPorownania'' </td>
<td>::=  </td>
<td><tt>{<math><</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>></math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math><</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>></math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>=</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!{<math>=</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazenieLogiczne'' </td>
<td>::=  </td>
<td>''WyrazeniePorownania'' ''OperatorLogiczny'' ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>''OperatorLogiczny'' </td>
<td>::=  </td>
<td>{\terminal{{<math>|</math>}{<math>|</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{\</td>
<td>\</td>
<td>}}  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>/</tt>  </td>
</tr>
<tr>
<td>''OperatorAddytywny'' </td>
<td>::=  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazeniePorownania'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorPorownania'' ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>''OperatorPorownania'' </td>
<td>::=  </td>
<td><tt>{<math><</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>></math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math><</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>></math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>=</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!{<math>=</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazenieLogiczne'' </td>
<td>::=  </td>
<td>''WyrazeniePorownania'' ''OperatorLogiczny'' ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>''OperatorLogiczny'' </td>
<td>::=  </td>
<td>{\terminal{{<math>|</math>}{<math>|</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{\</td>
<td>\</td>
<td>}}  </td>
</tr>
<tr>
<td>''Wyrazenie'' </td>
<td>::=  </td>
<td>''WyrazenieLogiczne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>new</tt> ''Typ''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>new</tt> ''Typ'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>done</tt> </td>
<td><tt>else</tt> </td>
</tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>extends</tt> </td>
<td><tt>function</tt> </td>
</tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>int</tt> </td>
<td><tt>new</tt> </td>
</tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>of</tt> </td>
<td><tt>program</tt> </td>
</tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>return</tt> </td>
<td><tt>string</tt> </td>
</tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>then</tt> </td>
<td><tt>this</tt> </td>
</tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>var</tt> </td>
<td><tt>void</tt> </td>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
</td>
</tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>\{</tt> </td>
<td><tt>\</tt>} </td>
</tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td><tt>,</tt> </td>
<td><tt>:</tt> </td>
</tr>
<tr>
<td><tt>(</tt> </td>
<td><tt>)</tt> </td>
<td><tt>:{<math>=</math></tt>} </td>
</tr>
<tr>
<td><tt>[</tt> </td>
<td><tt>]</tt> </td>
<td><tt>.</tt> </td>
</tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt>!</tt> </td>
</tr>
<tr>
<td><tt>*</tt> </td>
<td><tt>/</tt> </td>
<td><tt>{<math><</math></tt>} </td>
</tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
</tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
</tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
</td>
<td>
</td>
</tr>
<tr>
<td>''Program'' </td>
<td>::=  </td>
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</tr>
<tr>
<td>''Cialo'' </td>
<td>::=  </td>
<td>''ListDeklaracja'' ''Blok''  </td>
</tr>
<tr>
<td>''Blok'' </td>
<td>::=  </td>
<td><tt>\{</tt> ''ListInstrukcja'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>''ListDeklaracja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Deklaracja'' ''ListDeklaracja''  </td>
</tr>
<tr>
<td>''Deklaracja'' </td>
<td>::=  </td>
<td>''DeklaracjaTypu''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaFunkcji''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaKlasy''  </td>
</tr>
<tr>
<td>''DeklaracjaTypu'' </td>
<td>::=  </td>
<td><tt>type</tt> ''Ident'' <tt>{<math>=</math></tt>} ''OpisTypu''  </td>
</tr>
<tr>
<td>''OpisTypu'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>\{</tt> ''ListDeklaracjaZmiennej'' <tt>\</tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>array</tt> <tt>of</tt> ''Typ''  </td>
</tr>
<tr>
<td>''ListDeklaracjaZmiennej'' </td>
<td>::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''DeklaracjaZmiennej'' <tt>,</tt> ''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>''Typ'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>string</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>int</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>void</tt>  </td>
</tr>
<tr>
<td>''DeklaracjaZmiennej'' </td>
<td>::=  </td>
<td><tt>var</tt> ''Ident'' <tt>:</tt> ''Typ''  </td>
</tr>
<tr>
<td>''DeklaracjaFunkcji'' </td>
<td>::=  </td>
<td><tt>function</tt> ''Ident'' <tt>(</tt> ''DeklaracjaArgumentow'' <tt>)</tt> <tt>:</tt> ''Typ'' ''Cialo''  </td>
</tr>
<tr>
<td>''DeklaracjaArgumentow'' </td>
<td>::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td> </td>
</tr>
<tr>
<td>''ListInstrukcja'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Instrukcja'' ''ListInstrukcja''  </td>
</tr>
<tr>
<td>''Instrukcja'' </td>
<td>::=  </td>
<td>''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ZlozonaInstrukcja'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>:{<math>=</math></tt>} ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>delete</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>read</tt> ''Ident'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>write</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> ''Wyrazenie'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>return</tt> <tt>;</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePodstawowe'' </td>
<td>::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''String''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Integer''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>(</tt> ''Wyrazenie'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>this</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>super</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
</tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!</tt>  </td>
</tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>/</tt>  </td>
</tr>
<tr>
<td>''OperatorAddytywny'' </td>
<td>::=  </td>
<td><tt>{<math>+</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>-</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazeniePorownania'' </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorPorownania'' ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>''OperatorPorownania'' </td>
<td>::=  </td>
<td><tt>{<math><</math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>{<math>></math></tt>}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math><</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>></math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{{<math>=</math>}{<math>=</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>!{<math>=</math></tt>}  </td>
</tr>
<tr>
<td>''WyrazenieLogiczne'' </td>
<td>::=  </td>
<td>''WyrazeniePorownania'' ''OperatorLogiczny'' ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>''OperatorLogiczny'' </td>
<td>::=  </td>
<td>{\terminal{{<math>|</math>}{<math>|</math>}}}  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td>{\terminal{\</td>
<td>\</td>
<td>}}  </td>
</tr>
<tr>
<td>''Wyrazenie'' </td>
<td>::=  </td>
<td>''WyrazenieLogiczne''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>new</tt> ''Typ''  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>new</tt> ''Typ'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>''ZlozonaInstrukcja'' </td>
<td>::=  </td>
<td><tt>if</tt> ''Wyrazenie'' <tt>then</tt> ''ListInstrukcja'' <tt>else</tt> ''ListInstrukcja'' <tt>endif</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>if</tt> ''Wyrazenie'' <tt>then</tt> ''ListInstrukcja'' <tt>endif</tt>  </td>
</tr>
<tr>
<td>
</td>
<td>|  </td>
<td><tt>while</tt> ''Wyrazenie'' <tt>do</tt> ''ListInstrukcja'' <tt>done</tt>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>





Wersja z 13:55, 25 sie 2006


The lexical structure of kotek

Identifiers

Identifiers \nonterminal{Ident} are unquoted strings beginning with a letter, followed by any combination of letters, digits, and the characters {\tt \_ '}, reserved words excluded.


Literals

String literals \nonterminal{String}\ have the form \terminal{"}x\terminal{"}, where x is any sequence of any characters except \terminal{"}\ unless preceded by \verb6\6.


Integer literals \nonterminal{Int}\ are nonempty sequences of digits.


Reserved words and symbols

The set of reserved words is the set of terminals appearing in the grammar. Those reserved words that consist of non-letter characters are called symbols, and they are treated in a different way from those that are similar to identifiers. The lexer follows rules familiar from languages like Haskell, C, and Java, including longest match and spacing conventions.

The reserved words used in kotek are the following: \\


array class delete
do done else
endif extends function
if int new
null of program
read return string
super then this
type var void
while write
; \{ \}
{=} , :
( ) :{=}
[ ] .
{} {+} !
* / {<}
{>} {\symb{{<}{=}}} {\symb{{>}{=}}}
{\symb{{=}{=}}} !{=} {\symb{{|}{|}}}
{\symb{\ \ }}
Program ::= program ; Cialo
Cialo ::= ListDeklaracja Blok
Blok ::= \{ ListInstrukcja \}
ListDeklaracja ::=
| Deklaracja ListDeklaracja
Deklaracja ::= DeklaracjaTypu
| DeklaracjaZmiennej
| DeklaracjaFunkcji
| DeklaracjaKlasy
DeklaracjaTypu ::= type Ident {=} OpisTypu
OpisTypu ::= Ident
| \{ ListDeklaracjaZmiennej \}
| array of Typ
ListDeklaracjaZmiennej ::= DeklaracjaZmiennej
| DeklaracjaZmiennej , ListDeklaracjaZmiennej
Typ ::= Ident
| string
| int
| void
DeklaracjaZmiennej ::= var Ident : Typ
DeklaracjaFunkcji ::= function Ident ( DeklaracjaArgumentow ) : Typ Cialo
DeklaracjaArgumentow ::= ListDeklaracjaZmiennej
|
ListInstrukcja ::=
| Instrukcja ListInstrukcja
Instrukcja ::= Wyrazenie ;
| ZlozonaInstrukcja ;
| WyrazeniePostfiksowe :{=} Wyrazenie ;
| Blok
| delete Wyrazenie ;
| ;
| read Ident ;
| write Wyrazenie ;
| return Wyrazenie ;
| return ;
WyrazeniePodstawowe ::= Ident
| String
| Integer
| ( Wyrazenie )
| this
| super
| null
WyrazeniePostfiksowe ::= WyrazeniePostfiksowe [ Wyrazenie ]
| WyrazeniePostfiksowe ( Parametry )
| WyrazeniePostfiksowe . Ident
| WyrazeniePodstawowe
Parametry ::=
| ListWyrazenie
ListWyrazenie ::= Wyrazenie
| Wyrazenie , ListWyrazenie
WyrazenieUnarne ::= OperatorUnarny WyrazenieUnarne
| WyrazeniePostfiksowe
OperatorUnarny ::= {}
| {+}
| !
WyrazenieMultiplikatywne ::= WyrazenieMultiplikatywne OperatorMultiplikatywny WyrazenieUnarne
| WyrazenieUnarne
WyrazenieAddytywne ::= WyrazenieAddytywne OperatorAddytywny WyrazenieMultiplikatywne
| WyrazenieMultiplikatywne
OperatorMultiplikatywny ::= *
| /
OperatorAddytywny ::= {+}
| {}
WyrazeniePorownania ::= WyrazenieAddytywne OperatorPorownania WyrazenieAddytywne
| WyrazenieAddytywne
OperatorPorownania ::= {<}
| {>}
| {\terminal{{<}{=}}}
| {\terminal{{>}{=}}}
| {\terminal{{=}{=}}}
| !{=}
WyrazenieLogiczne ::= WyrazeniePorownania OperatorLogiczny WyrazeniePorownania
| WyrazeniePorownania
OperatorLogiczny ::= {\terminal{{|}{|}}}
| {\terminal{\ \ }}
Wyrazenie ::= WyrazenieLogiczne
| new Typ
| new Typ [ Wyrazenie ]
ZlozonaInstrukcja ::= if Wyrazenie then ListInstrukcja else ListInstrukcja endif
| if Wyrazenie then ListInstrukcja endif
| while Wyrazenie do ListInstrukcja done
DeklaracjaKlasy ::= class Ident extends Ident \{ ListDeklaracja \}