Słowa kluczowe

< k_program >::=program

< k_begin >::=begin

< k_end >::=end

< k_if >::=if

< k_else >::=else

< k_then >::=then

< k_while >::=while

< k_do >::=do

< k_var >::=var

< k_read >::=read

< k_readln >::=readln

< k_write >::=write

< k_writeln >::=writeln

Typy, znaki, symbole i operatory

< k_typ >::=integer|real|boolean

< cyfra >::=0|1|2|3|4|5|6|7|8|9

< minus >::= -

< liczba >::=[< minus>]< cyfra>{< cyfra>}*

< litera >::=a|...|z

< nazwa >::=< litera >{< litera >|< cyfra >}*

< op_przyp >::=:=

< sep >::=;

< okr_typ >::=:

< op_arytm >::=+|-|*|/

< op_porow >::=<|>|=|<=|>=|<>

< naw_pocz >::=(

< naw_kon >::=)

< kom_pocz >::={

< kom_kon >::=}

< wartosc >::=< liczba >|< nazwa >

< cudz >::=’

< spacja >::=” ”

Deklaracje i operacje

< dek_zm >::=< nazwa >< okr_typ >< k_typ >< sep >

< wyraz_arytm >::=< wartosc >{< op_arytm >< wartosc >}*

< przypisanie >::=< nazwa >< op_przyp >{< nazwa >|< liczba >|< wyraz_arytm >}

< porownanie >::=< wartosc >< op_porow >{< wartosc >|< wyraz_arytm >}

< tekst >::=< cudz >{< litera >|< cyfra >|< spacja >}*< cudz >

< output >::=< liczba >|< nazwa >|< tekst >|< wyraz_arytm >

< op_wej >::={< k_read >|< k_readln >}< naw_pocz >< nazwa >< naw_kon >

< op_wyj >::={< k_write >|< k_writeln >}< naw_pocz >< output >< naw_kon >

< instrukcja >::={< przypisanie >|< op_wej >|< op_wyj >|< op_if >|< petla >}< sep >

< instrukcja_zlozona >::={< k_begin >{< instrukcja >}*< k_end >}< sep >

< op_if >::=< k_if >< porownanie >< k_then >{< instrukcja >|< instrukcja_zlozona >}
[< k_else >{< instrukcja >|< instrukcja_zlozona >}]

< petla >::=< k_while >< porownanie >< k_do >{< instrukcja >|< instrukcja_zlozona >}

Struktura programu

< def_programu >::=[< k_program >< nazwa >< sep >]
[< k_var >{< dek_zm >}+]
< k_begin >
{< instrukcja >}*
< k_end >'.'