logo
baner
1. Podstawy
cyfra::={0|1|2|3|4|5|6|7|8|9}
liczba_calk::=< cyfra >{< cyfra >}*
liczba_rzecz::={< cyfra >}+< separator_dzies >{< cyfra >}*
liczba::={< liczba_calk >|< liczba_rzecz >}
mala_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}
duza_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}
litera::={< mala_litera >|< duza_litera >}
inny_symbol::={~|!|@|#|$|%|^|&|*|(|)|_|+|=|-|:|'|.|,|>|<|?|/|\}
znak::={< cyfra >|< litera >| _}
tekst::={ < znak > | < inny_symbol > }*
separator_dzies::={ .}
przecinek::= { ,}
srednik::= { ;}
dwukropek::= { :}
czudzyslow::= { "}
klamra_l::= { :}
klamra_p::={ :}
spacja::={ }
2. Operatory
operator_arytmetyczny::={ +|-|*|/ }
operator_relacji::={ <|>|=|>=|<=|<> }
operator_przypisania::={:=}
3. Słowa kluczowe
s_and::={and}
s_begin::={begin}
s_const::={const}
s_do::={do}
s_else::={else}
s_end::={end}
s_for::={for}
s_if::={if}
s_or::={or}
s_program::={program}
s_then={then}
s_to::={to}
s_var::={var}
4. Operacje
zmienna::=< litera >{< znak >}*
typ::={integer|real}
deklaracja_zmiennych::=< zmienna >{< przecinek ><
zmienna >}* < dwukropek >< typ >< srednik >
wartosc::={< liczba >|< zmienna >}
operacja_arytmetyczna::=< wartosc >{< operator_arytmetyczny >< wartosc >}*
operacja_relacji::=< wartosc >< operator_relacji >< wartosc >
operacja_przypisania::=< zmienna >< operator_przypisania
>{< liczba >|< zmienna >|< wyrazenie_arytmetyczne
>}
wynik::=< zmienna >< operator >< zmienna >< srednik >
warunek::={{< wartosc >< operator_relacji >< wartosc
>}|{< zmienna >< s_and >< zmienna >}|{< zmienna
>< s_or >< zmienna >}|{< zmienna >< s_not
>< zmienna >}}
petla_for::=< s_for >< zmienna >< operator_przypisania
>{< liczba_calk >|< zmienna >|< operacja_arytmetyczna
>}< s_to >{< liczba_calk >|< zmienna >|<
operacja_arytmetyczna >}< s_do >< instrukcja_zlozona >
instrukcja_prosta::={< zmienna >< przypisanie >< zmienna >< separator > |< zmienna >< wynik >< srednik >}
instrukcja_warunkowa::={ < s_if > < s_then >< instrukcja_zlozona > | < instrukcja_prosta >)
instrukcja_zlozona::=< s_begin >{< instrukcja_prosta >}* |{< petla_for >}* {< instrukcja warkunkowa >}*
komentarz::= < klamra_l >{ < tekst >< spacja >}*< klamra_p >
5. Operacje WE/WY
o_read::={read}
o_readln::={readln}
o_write::={write}
o_writeln::={writeln}
wczytywanie_zmiennych::={< o_read >< zmienna >< srednik
> |< o_readln >< zmienna >< srednik >}
wypisywanie::={< o_write >< cudzyslow >< tekst >< cudzyslow >< srednik >|< cudzyslow >< teks >< cudzyslow >< srednik >}
6. Program
def_programu::= {< s_program >< nazwa >< srednik >}
[< s_const >{< nazwa >< operator_przypisania >{<
liczba >|< tekst >< separator >}}+] [< s_var
>{< zmienna >}+]
{< operacja_przypisania >|< wypisywanie >|<
wczytywanie_zmiennych >|< instrukcja_prosta >|<
instrukcja_zlozona >}* < s_end >'.'
OZNACZENIA:
::= - przypisanie
[] - element może wystąpić 0 lub 1 raz
{} - wybierz jeden z elementów występujących
{}+ - element musi wystąpić co najmniej 1 raz
{}* - element może wystąpić 0 lub więcej razy
<> - zostało zdefiniowane wcze�niej
IBK 2008 ©