Notacja BNF


Ad 1.
cyfra::={0|1|2|3|4|5|6|7|8|9}
liczba_calk::=[-]{}+
separator_dziesietny::=[.]
liczba_rzeczywista::={ {}+ < separator_dzies> {}+ | {}+ }
logiczny::={true|false}
Ad 2.
typ::={integer|real|bool}
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::={|}
znak::={||_}
nazwa::={}*
deklaracja_zmiennej::={ " : " }
zmienna::=nazwa;
deklaracja_tablicy::={" :array[ " ".." "] of" }

Ad 3.
instrukcja_przypisania::= ":="{ | }
porownanie::={>|<|=|>=|<=|<>}
{| | } " then begin" {}+ "end"
petla_while::= "while " "do begin" {}+ "end"

Ad 4.
operacja::={+|-|*|/}
wyrazenie_artmetyczne::={|}{|}
wyr_art_zlozone::={}*

Ad 5.
if_w_while::= "while " "do begin" {}* {}* "end"
while_w_if::= "if " {| | } " then begin" {}* {}* "end"

Ad 6.
blok_instrukcji::="begin " {|||||}+ "end"
program::= "program" "var" {|}+

Ad 7.
cudzyslow::="
wypisanie::= "writeln ( " { | }+ ")"
czytanie::="read (" {}+ "}"