Testy ps: Różnice pomiędzy wersjami

Z Studia Informatyczne
Przejdź do nawigacjiPrzejdź do wyszukiwania
Przemek (dyskusja | edycje)
Nie podano opisu zmian
Przemek (dyskusja | edycje)
Nie podano opisu zmian
Linia 2: Linia 2:
<param name="TITLE" value="Wykres funkcji I(p) i P(p)">
<param name="TITLE" value="Wykres funkcji I(p) i P(p)">
</applet>
</applet>
\batchmode
<!--%This Latex file is machine-generated by the BNF-converter
-->
\documentclass[a4paper,11pt]{article}
\author{BNF-converter}
\title{The Language kotek}
\setlength{\parindent}{0mm}
\setlength{\parskip}{1mm}
\begin{document}
\maketitle
\newcommand<math>\epsilon</math>{\mbox{<math>\epsilon</math>}}
\newcommand{\terminal}[1]{\mbox{{\texttt {#1}}}}
\newcommand{\nonterminal}[1]{\mbox{<math>\langle \mbox{{\sl #1 }} \! \rangle</math>}}
\newcommand::={\mbox{::=}}
\newcommand|{\mbox{<math>|</math>}}
\newcommand{\reserved}[1]{\mbox{{\texttt {#1}}}}
\newcommand{\literal}[1]{\mbox{{\texttt {#1}}}}
\newcommand{\symb}[1]{\mbox{{\texttt {#1}}}}
This document was automatically generated by the {\em BNF-Converter}. It was generated together with the lexer, the parser, and the abstract syntax module, which guarantees that the document matches with the implementation of the language (provided no hand-hacking has taken place).
\section*{The lexical structure of kotek}
\subsection*{Identifiers}
Identifiers \nonterminal{Ident} are unquoted strings beginning with a letter,
followed by any combination of letters, digits, and the characters {\tt \_ '},
reserved words excluded.
\subsection*{Literals}
String literals \nonterminal{String}\ have the form
\terminal{"}<math>x</math>\terminal{"}, where <math>x</math> is any sequence of any characters
except \terminal{"}\ unless preceded by \verb6\6.
Integer literals \nonterminal{Int}\ are nonempty sequences of digits.
\subsection*{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: \\
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
The symbols used in kotek are the following: \\
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
\subsection*{Comments}
Single-line comments begin with {<math>//}</math>. \\Multiple-line comments are  enclosed with {<math>(*}</math> and {<math>*)}</math>.
\section*{The syntactic structure of kotek}
Non-terminals are enclosed between <math>\langle</math> and <math>\rangle</math>.
The symbols  ::=  (production),  |  (union)
and <math>\epsilon</math> (empty rule) belong to the BNF notation.
All other symbols are terminals.\\
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Deklaracja}} ''ListDeklaracja''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ListWyrazenie''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
''OperatorAddytywny'' </td>
<td> ::=  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
''OperatorAddytywny'' </td>
<td> ::=  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePorownania'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorPorownania}} ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
''OperatorAddytywny'' </td>
<td> ::=  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePorownania'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorPorownania}} ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
''OperatorPorownania'' </td>
<td> ::=  </td>
<td><t>{$<$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$<$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$=$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
''OperatorAddytywny'' </td>
<td> ::=  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePorownania'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorPorownania}} ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
''OperatorPorownania'' </td>
<td> ::=  </td>
<td><t>{$<$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$<$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$=$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!{$=$}</t>  </td>
</tr>
<tr>
<td>
''WyrazenieLogiczne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePorownania}} {\nonterminal{OperatorLogiczny}} ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
''OperatorAddytywny'' </td>
<td> ::=  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePorownania'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorPorownania}} ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
''OperatorPorownania'' </td>
<td> ::=  </td>
<td><t>{$<$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$<$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$=$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!{$=$}</t>  </td>
</tr>
<tr>
<td>
''WyrazenieLogiczne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePorownania}} {\nonterminal{OperatorLogiczny}} ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
''OperatorLogiczny'' </td>
<td> ::=  </td>
<td><t>{$|$}{$|$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\</td>
<td>\</td>
<td>}}  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
''OperatorAddytywny'' </td>
<td> ::=  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePorownania'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorPorownania}} ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
''OperatorPorownania'' </td>
<td> ::=  </td>
<td><t>{$<$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$<$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$=$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!{$=$}</t>  </td>
</tr>
<tr>
<td>
''WyrazenieLogiczne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePorownania}} {\nonterminal{OperatorLogiczny}} ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
''OperatorLogiczny'' </td>
<td> ::=  </td>
<td><t>{$|$}{$|$}</t>  </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><t>new}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{new}} {\nonterminal{Typ}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
''OperatorAddytywny'' </td>
<td> ::=  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePorownania'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorPorownania}} ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
''OperatorPorownania'' </td>
<td> ::=  </td>
<td><t>{$<$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$<$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$=$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!{$=$}</t>  </td>
</tr>
<tr>
<td>
''WyrazenieLogiczne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePorownania}} {\nonterminal{OperatorLogiczny}} ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
''OperatorLogiczny'' </td>
<td> ::=  </td>
<td><t>{$|$}{$|$}</t>  </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><t>new}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{new}} {\nonterminal{Typ}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
''ZlozonaInstrukcja'' </td>
<td> ::=  </td>
<td>{\terminal{if}} {\nonterminal{Wyrazenie}} {\terminal{then}} {\nonterminal{ListInstrukcja}} {\terminal{else}} ''ListInstrukcja'' <t>endif</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{if}} {\nonterminal{Wyrazenie}} {\terminal{then}} ''ListInstrukcja'' <t>endif</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{while}} {\nonterminal{Wyrazenie}} {\terminal{do}} ''ListInstrukcja'' <t>done</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
<table>
<tr>
<td><t>array</t> </td>
<td><t>class</t> </td>
<td><t>delete</t> </td>
</tr>
<tr>
<td>
<t>do</t> </td>
<td><t>done</t> </td>
<td><t>else</t> </td>
</tr>
<tr>
<td>
<t>endif</t> </td>
<td><t>extends</t> </td>
<td><t>function</t> </td>
</tr>
<tr>
<td>
<t>if</t> </td>
<td><t>int</t> </td>
<td><t>new</t> </td>
</tr>
<tr>
<td>
<t>null</t> </td>
<td><t>of</t> </td>
<td><t>program</t> </td>
</tr>
<tr>
<td>
<t>read</t> </td>
<td><t>return</t> </td>
<td><t>string</t> </td>
</tr>
<tr>
<td>
<t>super</t> </td>
<td><t>then</t> </td>
<td><t>this</t> </td>
</tr>
<tr>
<td>
<t>type</t> </td>
<td><t>var</t> </td>
<td><t>void</t> </td>
</tr>
<tr>
<td>
<t>while</t> </td>
<td><t>write</t> </td>
<td> </td>
</tr>
<tr>
<td>
<math>;</math> </td>
<td><math>\{</math> </td>
<td><math>\}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}</math> </td>
<td><math>,</math> </td>
<td><math>:</math> </td>
</tr>
<tr>
<td>
<math>(</math> </td>
<td><math>)</math> </td>
<td><math>:{$=$}</math> </td>
</tr>
<tr>
<td>
<math>[</math> </td>
<td><math>]</math> </td>
<td><math>.</math> </td>
</tr>
<tr>
<td>
<math>{$-$}</math> </td>
<td><math>{$+$}</math> </td>
<td><math>!</math> </td>
</tr>
<tr>
<td>
<math>*</math> </td>
<td><math>/</math> </td>
<td><math>{$<$}</math> </td>
</tr>
<tr>
<td>
<math>{$>$}</math> </td>
<td><math>{$<$}{$=$}</math> </td>
<td><math>{$>$}{$=$}</math> </td>
</tr>
<tr>
<td>
<math>{$=$}{$=$}</math> </td>
<td><math>!{$=$}</math> </td>
<td><math>{$|$}{$|$}</math> </td>
</tr>
<tr>
<td>
{\symb{\</td>
<td>\</td>
<td>}} </td>
<td> </td>
<td> </td>
</tr>
<tr>
<td>
''Program'' </td>
<td> ::=  </td>
<td>{\terminal{program}} <t>;}} {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''Cialo'' </td>
<td> ::=  </td>
<td>{\nonterminal{ListDeklaracja}} ''Blok''  </td>
</tr>
<tr>
<td>
''Blok'' </td>
<td> ::=  </td>
<td>{\terminal{\{}} ''ListInstrukcja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{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>{\terminal{type}} ''Ident}} <t>{$=$}'' {\nonterminal{OpisTypu</t>  </td>
</tr>
<tr>
<td>
''OpisTypu'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{\{}} ''ListDeklaracjaZmiennej'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{array}} <t>of}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''ListDeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>''DeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''DeklaracjaZmiennej}} <t>,'' {\nonterminal{ListDeklaracjaZmiennej</t>  </td>
</tr>
<tr>
<td>
''Typ'' </td>
<td> ::=  </td>
<td>''Ident''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>string</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>int</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>void</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaZmiennej'' </td>
<td> ::=  </td>
<td>{\terminal{var}} ''Ident}} <t>:'' {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaFunkcji'' </td>
<td> ::=  </td>
<td>{\terminal{function}} {\nonterminal{Ident}} {\terminal{(}} {\nonterminal{DeklaracjaArgumentow}} {\terminal{)}} <t>:}} ''Typ'' {\nonterminal{Cialo</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaArgumentow'' </td>
<td> ::=  </td>
<td>''ListDeklaracjaZmiennej''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
''ListInstrukcja'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{Instrukcja}} ''ListInstrukcja''  </td>
</tr>
<tr>
<td>
''Instrukcja'' </td>
<td> ::=  </td>
<td>''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''ZlozonaInstrukcja'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{:{$=$}}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''Blok''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{delete}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{read}} ''Ident'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{write}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} ''Wyrazenie'' <t>;</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{return}} <t>;</t>  </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>{\terminal{(}} ''Wyrazenie'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>this</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>super</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>null</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePostfiksowe'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\nonterminal{WyrazeniePostfiksowe}} {\terminal{(}} ''Parametry'' <t>)</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe}} <t>.'' {\nonterminal{Ident</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePodstawowe''  </td>
</tr>
<tr>
<td>
''Parametry'' </td>
<td> ::=  </td>
<td><math>\epsilon</math> </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}} <t>,'' {\nonterminal{ListWyrazenie</t>  </td>
</tr>
<tr>
<td>
''WyrazenieUnarne'' </td>
<td> ::=  </td>
<td>{\nonterminal{OperatorUnarny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePostfiksowe''  </td>
</tr>
<tr>
<td>
''OperatorUnarny'' </td>
<td> ::=  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!</t>  </td>
</tr>
<tr>
<td>
''WyrazenieMultiplikatywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieMultiplikatywne}} {\nonterminal{OperatorMultiplikatywny}} ''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieUnarne''  </td>
</tr>
<tr>
<td>
''WyrazenieAddytywne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorAddytywny}} ''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieMultiplikatywne''  </td>
</tr>
<tr>
<td>
''OperatorMultiplikatywny'' </td>
<td> ::=  </td>
<td><t>*</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>/</t>  </td>
</tr>
<tr>
<td>
''OperatorAddytywny'' </td>
<td> ::=  </td>
<td><t>{$+$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$-$}</t>  </td>
</tr>
<tr>
<td>
''WyrazeniePorownania'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazenieAddytywne}} {\nonterminal{OperatorPorownania}} ''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazenieAddytywne''  </td>
</tr>
<tr>
<td>
''OperatorPorownania'' </td>
<td> ::=  </td>
<td><t>{$<$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$<$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$>$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>{$=$}{$=$}</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td><t>!{$=$}</t>  </td>
</tr>
<tr>
<td>
''WyrazenieLogiczne'' </td>
<td> ::=  </td>
<td>{\nonterminal{WyrazeniePorownania}} {\nonterminal{OperatorLogiczny}} ''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>''WyrazeniePorownania''  </td>
</tr>
<tr>
<td>
''OperatorLogiczny'' </td>
<td> ::=  </td>
<td><t>{$|$}{$|$}</t>  </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><t>new}} {\nonterminal{Typ</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{new}} {\nonterminal{Typ}} {\terminal{[}} ''Wyrazenie'' <t>]</t>  </td>
</tr>
<tr>
<td>
''ZlozonaInstrukcja'' </td>
<td> ::=  </td>
<td>{\terminal{if}} {\nonterminal{Wyrazenie}} {\terminal{then}} {\nonterminal{ListInstrukcja}} {\terminal{else}} ''ListInstrukcja'' <t>endif</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{if}} {\nonterminal{Wyrazenie}} {\terminal{then}} ''ListInstrukcja'' <t>endif</t>  </td>
</tr>
<tr>
<td>
</td>
<td> |  </td>
<td>{\terminal{while}} {\nonterminal{Wyrazenie}} {\terminal{do}} ''ListInstrukcja'' <t>done</t>  </td>
</tr>
<tr>
<td>
''DeklaracjaKlasy'' </td>
<td> ::=  </td>
<td>{\terminal{class}} {\nonterminal{Ident}} {\terminal{extends}} {\nonterminal{Ident}} {\terminal{\{}} ''ListDeklaracja'' <t>\}</t>  </td>
</tr>
<tr>
<td>
</td>
</tr>
</table>
\end{document}

Wersja z 21:47, 16 sie 2006

<applet code="PSAplecik" archive="images/d/dd/PSApplet.jar" width="600" height="480"> <param name="TITLE" value="Wykres funkcji I(p) i P(p)"> </applet>

\batchmode \documentclass[a4paper,11pt]{article} \author{BNF-converter} \title{The Language kotek} \setlength{\parindent}{0mm} \setlength{\parskip}{1mm} \begin{document} \maketitle \newcommandϵ{\mbox{ϵ}} \newcommand{\terminal}[1]{\mbox{{\texttt {#1}}}} \newcommand{\nonterminal}[1]{\mbox{Parser nie mógł rozpoznać (błąd składni): {\displaystyle \langle \mbox{{\sl #1 }} \! \rangle} }} \newcommand::={\mbox{::=}} \newcommand|{\mbox{|}} \newcommand{\reserved}[1]{\mbox{{\texttt {#1}}}} \newcommand{\literal}[1]{\mbox{{\texttt {#1}}}} \newcommand{\symb}[1]{\mbox{{\texttt {#1}}}} This document was automatically generated by the {\em BNF-Converter}. It was generated together with the lexer, the parser, and the abstract syntax module, which guarantees that the document matches with the implementation of the language (provided no hand-hacking has taken place). \section*{The lexical structure of kotek} \subsection*{Identifiers} Identifiers \nonterminal{Ident} are unquoted strings beginning with a letter, followed by any combination of letters, digits, and the characters {\tt \_ '}, reserved words excluded.

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

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


\subsection*{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: \\

<t>array</t> <t>class</t> <t>delete</t>
<t>do</t> <t>done</t> <t>else</t>
<t>endif</t> <t>extends</t> <t>function</t>
<t>if</t> <t>int</t> <t>new</t>
<t>null</t> <t>of</t> <t>program</t>
<t>read</t> <t>return</t> <t>string</t>
<t>super</t> <t>then</t> <t>this</t>
<t>type</t> <t>var</t> <t>void</t>
<t>while</t> <t>write</t>

The symbols used in kotek are the following: \\

<t>array</t> <t>class</t> <t>delete</t>
<t>do</t> <t>done</t> <t>else</t>
<t>endif</t> <t>extends</t> <t>function</t>
<t>if</t> <t>int</t> <t>new</t>
<t>null</t> <t>of</t> <t>program</t>
<t>read</t> <t>return</t> <t>string</t>
<t>super</t> <t>then</t> <t>this</t>
<t>type</t> <t>var</t> <t>void</t>
<t>while</t> <t>write</t>
; { }
$=$ , :
( ) :$=$
[ ] .
$$ $+$ !
* / $<$
$>$ $<$$=$ $>$$=$
$=$$=$ !$=$ $|$$|$
{\symb{\ \ }}

\subsection*{Comments} Single-line comments begin with {Parser nie mógł rozpoznać (błąd składni): {\displaystyle //}} . \\Multiple-line comments are enclosed with {Parser nie mógł rozpoznać (błąd składni): {\displaystyle (*}} and {Parser nie mógł rozpoznać (błąd składni): {\displaystyle *)}} . \section*{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.\\

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


\end{document}