Testy ps: Różnice pomiędzy wersjami
Nie podano opisu zmian |
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{"}\terminal{"}, where 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}