![]() | ||
Główna Krótki opis Założenia Skład Grupy Notacja BNF Skaner Parser Interpreter Creep's Group |
Poniżej została przedstawiona notacje BNF, na podstawie której
został zbudowany skaner do interpretera.
EBNF PASCAL
< symbol_przypisania > ::= ”:=”
< symbol_porownania > ::= > | < | >= | <= | <> | =
< symbol_arytmetyczny >::= + | - | / | *
< operacja_wejscia >::= read | readln
< operacja_wyjscia >::= write | writeln
< litera >::={“a”|”b”|”c”|”d”|”e”|”f”|”g”|”h”|”I”|”j”|”k”|”l”|”m”|”n”|”o”|”p”|”q”|”r”|”s”|”t”|”v”
|”x”|”y”|”z”|”B”|”D”|”E”|”F”|”G”|”H”|”I”|”J”|”K”|”L”|”M”|”N”|”O”|”P”|”Q”|”R”|”S”|”T”|”U”|”V”|”W”|”X”|”Y”|”Z”}
< cyfra >::=”0”|”1”|”2”|”3”|”4”|”5”|”6”|”7”|”8”|”9”
< zmienna >::= {< litera >< cyfra >}
< kropka >::= ”.”
< separator >::= ”;”
< znak_ujemny >::= ”-“
< typ >::= integer | real | string | char
Deklaracja ciała programu
< program > ::= program
< deklaracja_zmiennych >
begin
< ciag_instrukcji >
end.
Deklaracja zmiennych
< deklaracja_zmiennych >::=var
{< zmienna >”:”< typ > < separator >}
Deklaracja liczb całkowitych i rzeczywistych
< liczba_calkowita >::= [< znak_ujemny >]{< cyfra >}
< liczba_rzeczywista >::=[< znak_ujemny >]< liczba_calkowita >< kropka >{< cyfra >}
< liczba >::=< liczba_calkowita >|< liczba_rzeczywista >
< wartosc >::=< zmienna >|< liczba >
Operacje arytmetyczne i logiczne
< operacja_przypisania >::= < zmienna >< symbol_przypisania >< liczba > | < zmienna >< symbol_przypisania >< zmienna >
< operacja_arytmetyczna >::=< wartosc >< symbol_arytmetyczny >< wartość >
< instrukcja >::=< operacja_przypisania >< separator >|
< operacja_przypisania >< symbol_arytmetyczny >< wartość >< separator >|
< operacja_przypisania >< symbol_arytmetyczny >< operacja_arytmetyczna >< separator > | < operacja_warunkowa >
< warunek >::= < wartosc >< symbol_porownania >< wartosc > | < petla_for > | < petla_while >
< operacja_logiczna >::= < warunek > {< symbol_logiczny > < warunek >}
Operacja warunkowa i pętla
< blok_instrukcji >::=begin{< instrukcja >}end< separator >
< operacja_warunkowa >::=if< operacja_logiczna >then< schemat >[else< blok_instrukcji >]< separator >
< petla_while >::=while< operacja_logiczna >do< blok_instrukcji >
< petla_for >::=for< operacja_przypisania >to< wartosc >do< blok_instrukcji >
| |