Notacja EBNF

	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 >







@copy rights reserved by Creep


Info:
Strona wykonana na potrzeby projektu z przedmiotu Systemy i Sieci Wirtualne.