<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}