Notacja BNF dla projektu c-pretter

For, new delete

Obiekt podstawowy <zdanie>

<zdanie>::=<przypisanie>|<deklaracja>|<pętla_for>

<zmienna>::= <litera> {<litera>}<stop>

<litera>::= [a-Z]

<cyfra>::=[0-9]
<liczba>::= [<znak>] <cyfra> {<cyfra>}
<wartosc>::=<litera> {<litera>} | <liczba>
<typ_prosty>::=”int” | ”double”


<instrukcja>::= <przypisanie> | <wyrazenie>| <petla_for> | <wczytanie> | <wypisanie>
<przypisanie>::=<zmienna>”:=”<wyrazenie> <stop>


<deklaracja>::=<typ> <zmienna><stop>| <typ><zmienna><przypisanie><stop> |
<typ_wskaznikowy> <zmienna><stop>| <typ_wskaznikowy><zmienna><przypisanie><stop>


<slowo_kluczowe>::=”program” | „begin” | „end” | „new” | „delete” | “for” | ”funkcja” | ”(” | ”)” | „return” | ”main” | „cin” | „cout”

<operator>::= ”+” | „-” | „*” | „/”
<operator_warunku> ::= „>=” | „<=” | „!=” | „=” | ”>” | ”<”

<znak>::=”+” | „-„
<stop>::=”;”
<separator>::=” „
<alokacja_pamieci>::=<zmienna> „:=” „new” <typ> <stop>
<zwalnianie_pamieci>::=”delete” <zmienna> <stop>
<wyrazenie>::=<zmienna><operator><zmienna> | <zmienna><operator><liczba> |
<liczba><operator><zmienna> | <liczba> | <zmienna> <stop>

<warunek>::=<wyrazenie> <operator_warunku> <wyrazenie> <stop>
<wczytanie>::=”cin>>” <stop>
<wypisanie>::=”cout<<” <stop>
<pętla_for>::=”for” “(“ <przypisanie> „;” <zmienna> <operator_warunku> <zmienna> | <zmienna> <operator_warunku> <wartosc> „;” <zmienna> <operator> <zmienna> | <zmienna> <operator> <wartosc> „ ; ” “)” <cialo> <stop>



<program>::= „main()”
<poczatek_ciala>
<deklaracja>
<instrukcja>
<petla_for>
<koniec_ciala>
<cialo>::=<poczatek_ciala>
{<instrukcja>}
<koniec_ciala>
<poczatek_ciala> ::= „{„
<koniec_ciala> ::=”}”