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)
 
(Nie pokazano 31 pośrednich wersji utworzonych przez tego samego użytkownika)
Linia 3: Linia 3:
==The lexical structure of kotek==
==The lexical structure of kotek==
===Identifiers===
===Identifiers===
Identifiers \nonterminal{Ident} are unquoted strings beginning with a letter,
Identifiers ''Ident'' are unquoted strings beginning with a letter,
followed by any combination of letters, digits, and the characters {\tt \_ '},
followed by any combination of letters, digits, and the characters<tt> _ '</tt>,
reserved words excluded.
reserved words excluded.


===Literals===
===Literals===
String literals \nonterminal{String}\ have the form
String literals ''<String>'' have the form
\terminal{"}<math>x</math>\terminal{"}, where <math>x</math> is any sequence of any characters
<tt>"</tt><math>x</math><tt>"</tt>, where <math>x</math> is any sequence of any characters
except \terminal{"}\ unless preceded by \verb6\6.
except <tt>"</tt> unless preceded by <tt>\</tt>.
 


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


Integer literals ''<Int>'' are nonempty sequences of digits.


===Reserved words and symbols===
===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 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: \\
The reserved words used in kotek are the following:  
 


<table>
<table>
<tr>
<tr>
<td><tt>array</tt> </td>
<td width="20%"><tt>array</tt> </td>
<td><tt>class</tt> </td>
<td width="20%"><tt>class</tt> </td>
<td><tt>delete</tt> </td>
<td width="20%"><tt>delete</tt> </td>
</tr>
</tr>
<tr>
<tr>
Linia 68: Linia 66:
<td><tt>write</tt> </td>
<td><tt>write</tt> </td>
<td>
<td>
</td>
</tr>
<tr>
<td>
</td>
</td>
</tr>
</tr>
Linia 79: Linia 71:




The symbols used in kotek are the following: \\
The symbols used in kotek are the following:


<table>
<table>
<tr>
<tr>
<td><tt>array</tt> </td>
<td width="20%"><tt>;</tt></td>
<td><tt>class</tt> </td>
<td width="20%"><tt>{</tt></td>
<td><tt>delete</tt> </td>
<td width="20%"><tt>}</tt></td>
</tr>
</tr>
<tr>
<tr>
<td><tt>do</tt> </td>
<td><tt>=</tt></td>
<td><tt>done</tt> </td>
<td><tt>,</tt></td>
<td><tt>else</tt> </td>
<td><tt>:</tt></td>
</tr>
</tr>
<tr>
<tr>
<td><tt>endif</tt> </td>
<td><tt>(</tt></td>
<td><tt>extends</tt> </td>
<td><tt>)</tt></td>
<td><tt>function</tt> </td>
<td><tt>:=</tt></td>
</tr>
</tr>
<tr>
<tr>
<td><tt>if</tt> </td>
<td><tt>[</tt></td>
<td><tt>int</tt> </td>
<td><tt>]</tt></td>
<td><tt>new</tt> </td>
<td><tt>.</tt></td>
</tr>
</tr>
<tr>
<tr>
<td><tt>null</tt> </td>
<td><tt>-</tt></td>
<td><tt>of</tt> </td>
<td><tt>+</tt></td>
<td><tt>program</tt> </td>
<td><tt>!</tt></td>
</tr>
</tr>
<tr>
<tr>
<td><tt>read</tt> </td>
<td><tt>*</tt></td>
<td><tt>return</tt> </td>
<td><tt>/</tt></td>
<td><tt>string</tt> </td>
<td><tt><</tt></td>
</tr>
</tr>
<tr>
<tr>
<td><tt>super</tt> </td>
<td><tt>></tt></td>
<td><tt>then</tt> </td>
<td><tt><=</tt></td>
<td><tt>this</tt> </td>
<td><tt>>=</tt></td>
</tr>
</tr>
<tr>
<tr>
<td><tt>type</tt> </td>
<td><tt>==</tt></td>
<td><tt>var</tt> </td>
<td><tt>!=</tt></td>
<td><tt>void</tt> </td>
<td><tt>||</tt></td>
</tr>
</tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>


</td>
</tr>
<tr>
<tr>
<td><tt>;</tt> </td>
<td><tt>&&</tt></td>
<td><tt>\{</tt> </td>
<td>&nbsp;</td>
<td><tt>\</tt>} </td>
<td>&nbsp;</td>
</tr>
</tr>
</table>
===Comments===
Single-line comments begin with <tt>//</tt>.
Multiple-line comments are  enclosed with <tt>(*</tt> and <tt>*)</tt>.
==The syntactic structure of kotek==
Non-terminals are enclosed between <math>\langle</math> and <math>\rangle</math>.
The symbols  :=  (production),  |  (union)
and &epsilon; (empty rule) belong to the BNF notation.
All other symbols are terminals.
<table>
<tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td>''<Program>'' </td>
<td><tt>,</tt> </td>
<td>::=  </td>
<td><tt>:</tt> </td>
<td><tt>'''program'''</tt> <tt>;</tt> ''<Cialo>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>(</tt> </td>
<td>''<Cialo>'' </td>
<td><tt>)</tt> </td>
<td>::=  </td>
<td><tt>:{<math>=</math></tt>} </td>
<td>''<ListDeklaracja>'' ''<Blok>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>[</tt> </td>
<td>''<Blok>'' </td>
<td><tt>]</tt> </td>
<td>::=  </td>
<td><tt>.</tt> </td>
<td><tt>{</tt> ''<ListInstrukcja>'' <tt>}</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td>''<ListDeklaracja>'' </td>
<td><tt>{<math>+</math></tt>} </td>
<td>::=  </td>
<td><tt>!</tt> </td>
<td> &epsilon;</td>
</tr>
</tr>
<tr>
<tr>
<td><tt>*</tt> </td>
<td>
<td><tt>/</tt> </td>
 
<td><tt>{<math><</math></tt>} </td>
</td>
<td></td>
<td>''<Deklaracja>'' ''<ListDeklaracja>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td>''<Deklaracja>'' </td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>::= </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
<td>''<DeklaracjaTypu>''  </td>
</tr>
</tr>
<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>
<td>|  </td>
<td>''<DeklaracjaZmiennej>''  </td>
</tr>
<tr>
<td>
<td>


</td>
</td>
<td>|  </td>
<td>''<DeklaracjaFunkcji>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 184: Linia 191:


</td>
</td>
<td>|  </td>
<td>''<DeklaracjaKlasy>''  </td>
</tr>
</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>
<tr>
<td><tt>array</tt> </td>
<td>''<DeklaracjaTypu>'' </td>
<td><tt>class</tt> </td>
<td>::=  </td>
<td><tt>delete</tt> </td>
<td><tt>'''type'''</tt> ''<Ident>'' <tt><math>=</math></tt> ''<OpisTypu>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>do</tt> </td>
<td>''<OpisTypu>'' </td>
<td><tt>done</tt> </td>
<td>::=  </td>
<td><tt>else</tt> </td>
<td>''<Ident>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>endif</tt> </td>
<td>
<td><tt>extends</tt> </td>
 
<td><tt>function</tt> </td>
</td>
<td></td>
<td><tt>{</tt> ''<ListDeklaracjaZmiennej>'' <tt>}</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>if</tt> </td>
<td>
<td><tt>int</tt> </td>
 
<td><tt>new</tt> </td>
</td>
<td></td>
<td><tt>'''array'''</tt> <tt>'''of'''</tt> ''<Typ>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>null</tt> </td>
<td>''<ListDeklaracjaZmiennej>'' </td>
<td><tt>of</tt> </td>
<td>::=  </td>
<td><tt>program</tt> </td>
<td>''<DeklaracjaZmiennej>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>read</tt> </td>
<td>
<td><tt>return</tt> </td>
 
<td><tt>string</tt> </td>
</td>
<td></td>
<td>''<DeklaracjaZmiennej>'' <tt>,</tt> ''<ListDeklaracjaZmiennej>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>super</tt> </td>
<td>''<Typ>'' </td>
<td><tt>then</tt> </td>
<td>::=  </td>
<td><tt>this</tt> </td>
<td>''<Ident>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>type</tt> </td>
<td>
<td><tt>var</tt> </td>
 
<td><tt>void</tt> </td>
</td>
<td></td>
<td><tt>'''string'''</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
<td>


</td>
</td>
<td>|  </td>
<td><tt>'''int'''</tt>  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>;</tt> </td>
<td>
<td><tt>\{</tt> </td>
 
<td><tt>\</tt>} </td>
</td>
<td></td>
<td><tt>'''void'''</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td>''<DeklaracjaZmiennej>'' </td>
<td><tt>,</tt> </td>
<td>::=  </td>
<td><tt>:</tt> </td>
<td><tt>'''var'''</tt> ''<Ident>'' <tt>:</tt> ''<Typ>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>(</tt> </td>
<td>''<DeklaracjaFunkcji>'' </td>
<td><tt>)</tt> </td>
<td>::=  </td>
<td><tt>:{<math>=</math></tt>} </td>
<td><tt>'''function'''</tt> ''<Ident>'' <tt>(</tt> ''<DeklaracjaArgumentow>'' <tt>)</tt> <tt>:</tt> ''<Typ>'' ''<Cialo>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>[</tt> </td>
<td>''<DeklaracjaArgumentow>'' </td>
<td><tt>]</tt> </td>
<td>::=  </td>
<td><tt>.</tt> </td>
<td>''<ListDeklaracjaZmiennej>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<td> </td>
<td><tt>{<math>+</math></tt>} </td>
<td></td>
<td><tt>!</tt> </td>
<td>&epsilon;</td>
</tr>
</tr>
<tr>
<tr>
<td><tt>*</tt> </td>
<td>''<ListInstrukcja>'' </td>
<td><tt>/</tt> </td>
<td>::=  </td>
<td><tt>{<math><</math></tt>} </td>
<td>
&epsilon;
</td>
</tr>
</tr>
<tr>
<tr>
<td><tt>{<math>></math></tt>} </td>
<td></td>
<td>{\symb{{<math><</math>}{<math>=</math>}}} </td>
<td>| </td>
<td>{\symb{{<math>></math>}{<math>=</math>}}} </td>
 
<td>''<Instrukcja>'' ''<ListInstrukcja>''  </td>
</tr>
</tr>
<tr>
<tr>
<td>{\symb{{<math>=</math>}{<math>=</math>}}} </td>
<td>''<Instrukcja>'' </td>
<td><tt>!{<math>=</math></tt>} </td>
<td>::= </td>
<td>{\symb{{<math>|</math>}{<math>|</math>}}} </td>
<td>''<Wyrazenie>'' <tt>;</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td>{\symb{\</td>
<td>\</td>
<td>}} </td>
<td>
<td>


</td>
</td>
<td>|  </td>
<td>''<ZlozonaInstrukcja>'' <tt>;</tt>  </td>
</tr>
<tr>
<td>
<td>


</td>
</td>
<td>|  </td>
<td>''<WyrazeniePostfiksowe>'' <tt>:<math>=</math></tt> ''<Wyrazenie>'' <tt>;</tt>  </td>
</tr>
</tr>
<tr>
<tr>
<td>''Program'' </td>
<td>
<td>::= </td>
 
<td><tt>program</tt> <tt>;</tt> ''Cialo''  </td>
</td>
<td>| </td>
<td>''<Blok>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 305: Linia 319:


</td>
</td>
<td>|  </td>
<td><tt>'''delete'''</tt> ''<Wyrazenie>'' <tt>;</tt>  </td>
</tr>
</tr>
</table>
<tr>
<td>


</td>
<td>|  </td>
<td><tt>;</tt>  </td>
</tr>
<tr>
<td>


<table>
</td>
<tr>
<td></td>
<td><tt>array</tt> </td>
<td><tt>'''read'''</tt> ''<Ident>'' <tt>;</tt> </td>
<td><tt>class</tt> </td>
<td><tt>delete</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>do</tt> </td>
<td>
<td><tt>done</tt> </td>
 
<td><tt>else</tt> </td>
</td>
<td></td>
<td><tt>'''write'''</tt> ''<Wyrazenie>'' <tt>;</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>endif</tt> </td>
<td>
<td><tt>extends</tt> </td>
 
<td><tt>function</tt> </td>
</td>
<td></td>
<td><tt>'''return'''</tt> ''<Wyrazenie>'' <tt>;</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>if</tt> </td>
<td>
<td><tt>int</tt> </td>
 
<td><tt>new</tt> </td>
</td>
<td></td>
<td><tt>'''return'''</tt> <tt>;</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>null</tt> </td>
<td>''<WyrazeniePodstawowe>'' </td>
<td><tt>of</tt> </td>
<td>::=  </td>
<td><tt>program</tt> </td>
<td>''<Ident>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>read</tt> </td>
<td>
<td><tt>return</tt> </td>
 
<td><tt>string</tt> </td>
</td>
<td></td>
<td>''<String>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>super</tt> </td>
<td>
<td><tt>then</tt> </td>
 
<td><tt>this</tt> </td>
</td>
<td></td>
<td>''<Integer>''  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>type</tt> </td>
<td>
<td><tt>var</tt> </td>
 
<td><tt>void</tt> </td>
</td>
<td></td>
<td><tt>(</tt> ''<Wyrazenie>'' <tt>)</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>while</tt> </td>
<td><tt>write</tt> </td>
<td>
<td>


</td>
</td>
<td>|  </td>
<td><tt>'''this'''</tt>  </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>;</tt> </td>
<td>
<td><tt>\{</tt> </td>
 
<td><tt>\</tt>} </td>
</td>
<td></td>
<td><tt>'''super'''</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>{<math>=</math></tt>} </td>
<td>
<td><tt>,</tt> </td>
 
<td><tt>:</tt> </td>
</td>
<td></td>
<td><tt>'''null'''</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>(</tt> </td>
<td>''<WyrazeniePostfiksowe>'' </td>
<td><tt>)</tt> </td>
<td>::=  </td>
<td><tt>:{<math>=</math></tt>} </td>
<td>''<WyrazeniePostfiksowe>'' <tt>[</tt> ''<Wyrazenie>'' <tt>]</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>[</tt> </td>
<td>
<td><tt>]</tt> </td>
 
<td><tt>.</tt> </td>
</td>
<td></td>
<td>''<WyrazeniePostfiksowe>'' <tt>(</tt> ''<Parametry>'' <tt>)</tt> </td>
</tr>
</tr>
<tr>
<tr>
<td><tt>{<math>-</math></tt>} </td>
<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>
 
 
<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>
<td>|  </td>
<td><tt>this</tt>  </td>
<td>''<WyrazeniePostfiksowe>'' <tt>.</tt> ''<Ident>'' </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 076: Linia 428:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>super</tt>  </td>
<td>''<WyrazeniePodstawowe>'' </td>
</tr>
</tr>
<tr>
<tr>
<td>
<td>''<Parametry>'' </td>
 
</td>
<td>|  </td>
<td><tt>null</tt>  </td>
</tr>
<tr>
<td>''WyrazeniePostfiksowe'' </td>
<td>::=  </td>
<td>::=  </td>
<td>''WyrazeniePostfiksowe'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
</tr>
<tr>
<td>
<td>
 
&epsilon;
</td>
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>(</tt> ''Parametry'' <tt>)</tt>  </td>
</tr>
</tr>
<tr>
<tr>
<td>
<td> </td>
 
</td>
<td>|  </td>
<td>''WyrazeniePostfiksowe'' <tt>.</tt> ''Ident''  </td>
</tr>
<tr>
<td>
 
</td>
<td>|  </td>
<td>|  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>''Parametry'' </td>
<td>::=  </td>
<td> </td>
</tr>
<tr>
<td>


</td>
<td>''<ListWyrazenie>''  </td>
<td>|  </td>
<td>''ListWyrazenie''  </td>
</tr>
</tr>
<tr>
<tr>
<td>''ListWyrazenie'' </td>
<td>''<ListWyrazenie>'' </td>
<td>::=  </td>
<td>::=  </td>
<td>''Wyrazenie''  </td>
<td>''<Wyrazenie>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 133: Linia 453:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>''Wyrazenie'' <tt>,</tt> ''ListWyrazenie''  </td>
<td>''<Wyrazenie>'' <tt>,</tt> ''<ListWyrazenie>''  </td>
</tr>
</tr>
<tr>
<tr>
<td>''WyrazenieUnarne'' </td>
<td>''<WyrazenieUnarne>'' </td>
<td>::=  </td>
<td>::=  </td>
<td>''OperatorUnarny'' ''WyrazenieUnarne''  </td>
<td>''<OperatorUnarny>'' ''<WyrazenieUnarne>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 145: Linia 465:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>''WyrazeniePostfiksowe''  </td>
<td>''<WyrazeniePostfiksowe>''  </td>
</tr>
</tr>
<tr>
<tr>
<td>''OperatorUnarny'' </td>
<td>''<OperatorUnarny>'' </td>
<td>::=  </td>
<td>::=  </td>
<td><tt>{<math>-</math></tt>} </td>
<td><tt><math>-</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 157: Linia 477:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt><math>+</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 167: Linia 487:
</tr>
</tr>
<tr>
<tr>
<td>''WyrazenieMultiplikatywne'' </td>
<td>''<WyrazenieMultiplikatywne>'' </td>
<td>::=  </td>
<td>::=  </td>
<td>''WyrazenieMultiplikatywne'' ''OperatorMultiplikatywny'' ''WyrazenieUnarne''  </td>
<td>''<WyrazenieMultiplikatywne>'' ''<OperatorMultiplikatywny>'' ''<WyrazenieUnarne>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 176: Linia 496:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>''WyrazenieUnarne''  </td>
<td>''<WyrazenieUnarne>''  </td>
</tr>
</tr>
<tr>
<tr>
<td>''WyrazenieAddytywne'' </td>
<td>''<WyrazenieAddytywne>'' </td>
<td>::=  </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorAddytywny'' ''WyrazenieMultiplikatywne''  </td>
<td>''<WyrazenieAddytywne>'' ''<OperatorAddytywny>'' ''<WyrazenieMultiplikatywne>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 188: Linia 508:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>''WyrazenieMultiplikatywne''  </td>
<td>''<WyrazenieMultiplikatywne>''  </td>
</tr>
</tr>
<tr>
<tr>
<td>''OperatorMultiplikatywny'' </td>
<td>''<OperatorMultiplikatywny>'' </td>
<td>::=  </td>
<td>::=  </td>
<td><tt>*</tt>  </td>
<td><tt>*</tt>  </td>
Linia 11 203: Linia 523:
</tr>
</tr>
<tr>
<tr>
<td>''OperatorAddytywny'' </td>
<td>''<OperatorAddytywny>'' </td>
<td>::=  </td>
<td>::=  </td>
<td><tt>{<math>+</math></tt>} </td>
<td><tt><math>+</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 212: Linia 532:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>{<math>-</math></tt>} </td>
<td><tt><math>-</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
<td>''WyrazeniePorownania'' </td>
<td>''<WyrazeniePorownania>'' </td>
<td>::=  </td>
<td>::=  </td>
<td>''WyrazenieAddytywne'' ''OperatorPorownania'' ''WyrazenieAddytywne''  </td>
<td>''<WyrazenieAddytywne>'' ''<OperatorPorownania>'' ''<WyrazenieAddytywne>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 224: Linia 544:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>''WyrazenieAddytywne''  </td>
<td>''<WyrazenieAddytywne>''  </td>
</tr>
</tr>
<tr>
<tr>
<td>''OperatorPorownania'' </td>
<td>''<OperatorPorownania>'' </td>
<td>::=  </td>
<td>::=  </td>
<td><tt>{<math><</math></tt>} </td>
<td><tt><math><</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 236: Linia 556:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>{<math>></math></tt>} </td>
<td><tt><math>></math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 243: Linia 563:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>{\terminal{{<math><</math>}{<math>=</math>}}} </td>
<td><tt><math><=</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 250: Linia 570:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>{\terminal{{<math>></math>}{<math>=</math>}}} </td>
<td><tt><math>>=</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 257: Linia 577:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>{\terminal{{<math>=</math>}{<math>=</math>}}} </td>
<td><tt><math>==</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 264: Linia 584:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>!{<math>=</math></tt>} </td>
<td><tt>!<math>=</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
<td>''WyrazenieLogiczne'' </td>
<td>''<WyrazenieLogiczne>'' </td>
<td>::=  </td>
<td>::=  </td>
<td>''WyrazeniePorownania'' ''OperatorLogiczny'' ''WyrazeniePorownania''  </td>
<td>''<WyrazeniePorownania>'' ''<OperatorLogiczny>'' ''<WyrazeniePorownania>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 276: Linia 596:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>''WyrazeniePorownania''  </td>
<td>''<WyrazeniePorownania>''  </td>
</tr>
</tr>
<tr>
<tr>
<td>''OperatorLogiczny'' </td>
<td>''<OperatorLogiczny>'' </td>
<td>::=  </td>
<td>::=  </td>
<td>{\terminal{{<math>|</math>}{<math>|</math>}}} </td>
<td><tt><math>||</math></tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 288: Linia 608:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td>{\terminal{\</td>
<td><tt>&&</tt></td>
<td>\</td>
<td>}}  </td>
</tr>
</tr>
<tr>
<tr>
<td>''Wyrazenie'' </td>
<td>''<Wyrazenie>'' </td>
<td>::=  </td>
<td>::=  </td>
<td>''WyrazenieLogiczne''  </td>
<td>''<WyrazenieLogiczne>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 302: Linia 620:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>new</tt> ''Typ''  </td>
<td><tt>'''new'''</tt> ''<Typ>''  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 309: Linia 627:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>new</tt> ''Typ'' <tt>[</tt> ''Wyrazenie'' <tt>]</tt>  </td>
<td><tt>'''new'''</tt> ''<Typ>'' <tt>[</tt> ''<Wyrazenie>'' <tt>]</tt>  </td>
</tr>
</tr>
<tr>
<tr>
<td>''ZlozonaInstrukcja'' </td>
<td>''<ZlozonaInstrukcja>'' </td>
<td>::=  </td>
<td>::=  </td>
<td><tt>if</tt> ''Wyrazenie'' <tt>then</tt> ''ListInstrukcja'' <tt>else</tt> ''ListInstrukcja'' <tt>endif</tt>  </td>
<td><tt>'''if'''</tt> ''<Wyrazenie>'' <tt>'''then'''</tt> ''<ListInstrukcja>'' <tt>'''else'''</tt> ''<ListInstrukcja>'' <tt>'''endif'''</tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 321: Linia 639:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>if</tt> ''Wyrazenie'' <tt>then</tt> ''ListInstrukcja'' <tt>endif</tt>  </td>
<td><tt>'''if'''</tt> ''<Wyrazenie>'' <tt>'''then'''</tt> ''<ListInstrukcja>'' <tt>'''endif'''</tt>  </td>
</tr>
</tr>
<tr>
<tr>
Linia 11 328: Linia 646:
</td>
</td>
<td>|  </td>
<td>|  </td>
<td><tt>while</tt> ''Wyrazenie'' <tt>do</tt> ''ListInstrukcja'' <tt>done</tt>  </td>
<td><tt>'''while'''</tt> ''<Wyrazenie>'' <tt>'''do'''</tt> ''<ListInstrukcja>'' <tt>'''done'''</tt>  </td>
</tr>
</tr>
<tr>
<tr>
<td>''DeklaracjaKlasy'' </td>
<td>''<DeklaracjaKlasy>'' </td>
<td>::=  </td>
<td>::=  </td>
<td><tt>class</tt> ''Ident'' <tt>extends</tt> ''Ident'' <tt>\{</tt> ''ListDeklaracja'' <tt>\</tt>} </td>
<td><tt>'''class'''</tt> ''<Ident>'' <tt>'''extends'''</tt> ''<Ident>'' <tt>{</tt> ''<ListDeklaracja>'' <tt>}</tt>  </td>
</tr>
</tr>
<tr>
<tr>

Aktualna wersja na dzień 15:07, 25 sie 2006


The lexical structure of kotek

Identifiers

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

Literals

String literals <String> have the form "x", where x is any sequence of any characters except " unless preceded by \.


Integer literals <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


The symbols used in kotek are the following:

; { }
= , :
( ) :=
[ ] .
- + !
* / <
> <= >=
== != ||
&&    

Comments

Single-line comments begin with //. Multiple-line comments are enclosed with (* and *).

The syntactic structure of kotek

Non-terminals are enclosed between and . The symbols  := (production), | (union) and ε (empty rule) belong to the BNF notation. All other symbols are terminals.


<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> ::= <
| >
| <=
| >=
| ==
| !=
<WyrazenieLogiczne> ::= <WyrazeniePorownania> <OperatorLogiczny> <WyrazeniePorownania>
| <WyrazeniePorownania>
<OperatorLogiczny> ::= ||
| &&
<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> }