documentation
BNF specification for the parser
<cyfra> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<liczba> ::= ["-"] <cyfra>{<cyfra>}
<liczba_dziesietna> ::= ["-"] <liczba>"."<liczba>
<litera> ::= a | b | c | d | e | f | g | h | i | j | k | l | m | n |
o | p | q | r | s | t | u | v | w | x | y | z | A | B |
C | D | E | F | G | H | I | J | K | L | M | N | O | P |
Q | R | S | T | U | V | W | X | Y | Z
<slowo> ::= <litera> {<litera> | <cyfra>}
<znak_arytmetyczny> ::= "+" | "-" | "*" | "/"
<operator_przypisania> ::= ":="
<operator_porownania> ::= ">=" | "<=" | "<>" | "=" | ">" | "<"
<operator_logiczny> ::= "not" | "and" | "or"
<typ_danych> ::= "integer" | "real" | "Boolean"
<t_program> ::= "program"
<t_var> ::= "var"
<t_begin> ::= "begin"
<t_end> ::= "end"
<koniec_programu> ::= "end."
<t_if> ::= "if"
<t_else> ::= "else"
<t_while> ::= "while"
<t_do> ::= "do"
<slowo_kluczowe> ::= <typ_danych> | <t_program> | <t_var> |
<t_begin> | <t_end> | <koniec_programu> |
<t_if> | <t_else> | <t_while> | <t_do>
<nazwa_zmiennej> ::= <slowo> opr�cz <slowo_kluczowe> i <typ_danych>
<deklaracja_zmiennej> ::= <nazwa_zmiennej> { "," <nazwa_zmiennej> }
":" <typ_danych> ";"
<blok_deklaracji_zmiennych> ::= <t_var> <deklaracja_zmiennej>
{ <deklaracja_zmiennej> }
<wyrazenie_arytmetyczne> ::= <liczba> | <nazwa_zmiennej>
<operator_arytmetyczny> <liczba> |
<nazwa_zmiennej>
<wyrazenie_arytmetyczne> ::= <wyrazenie_arytmetyczne>
<operator_arytmetyczny> <liczba> |
<nazwa_zmiennej>
<wyrazenie_arytmetyczne> ::= "(" <wyrazenie_arytmetyczne> ")"
<wyrazenie_logiczne> ::= "true" | "false" | <wyrazenie_logiczne>
<wyrazenie_logiczne> ::= <liczba> | <nazwa_zmiennej>
<operator_porownania> <liczba> |
<nazwa_zmiennej>
<wyrazenie_logiczne> ::= <wyrazenie_logiczne> <operator_logiczny>
<wyrazenie_logiczne>
<wyrazenie_logiczne> ::= "("<wyrazenie_logiczne> ")"
<instrukcja_przypisania> ::= <nazwa_zmiennej> ":="
<liczba> | <nazwa_zmiennej> |
<wyrazenie_arytmetyczne> |
<wyrazenie_logiczne> ";"
<instrukcja> ::= <instrukcja_przypisania> | <instrukcja_p�tli> |
<instrukcja_warunkowa>
<instrukcja> ::= <t_begin> { <instrukcja> } <t_end>
<instrukcja_p�tli> ::= <t_while> <wyra�enie_logiczne>
<t_do> <instrukcja>
<instrukcja_warunkowa> ::= <t_if> <wyra�enie_logiczne> <t_then>
<instrukcja> [ <t_elese> <instrukcja> ]
<blok_programu> ::= <t_program> <nazwa_zmiennej>
[ <blok_deklaracji_zmiennych> ] <t_begin>
<instrukcja> <koniec_programu>
|