SnakeC
 
sklad

opis

bnf


strona glowna



pobierz bnf
Notacja BNF
<identyfikator>::={<litera>}+|{<litera>}|{<cyfra>}
<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"
|"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"
<cyfra>::="0"|"1"|"2"|"3"|"4"|"5"|"6"|"7"|"8"|"9"
<liczba>::=[<znak_liczby>]{<cyfra>}+
<napis>::={<litera>}|{<cyfra>}
<deklaracja_zmiennej>::=<typ_danych>{<identyfikator_zmiennej>";"
[<typ_danych><identyfikator_zmiennej>"="<stała>|<zmienna>";"]}
<typ_danych>::={"int"|"float"|"bool"}
<identyfikator_zmiennej>::=<identyfikator>
<zmienna>::=["-"]<liczba>|<identyfikator_stałej>|<napis>]
<deklaracja_stałej>::=["const" <definicja_stałej>";" {<definicja_stałej>";"}]
<definicja_stałej>::=<identyfikator_stałej>"="<stała>
<stała>::=[<znak_liczby>]<liczba>|<identyfikator_stałej>|<napis>
<identyfikator_stałej>::=<identyfikator>

<deklaracja_tablicy>::=<typ_danych><identyfikator_tablicy>{"["<liczba>|<identyfikator_stałej>"]"}+
<identyfikator_tablicy>::=<identyfikator>

<instrukcja_przypisania>::=<identyfikator_zmiennej>"="<identyfikator_zmiennej>|<stała>
<instrukcja_arytmetyczna>::=<czynnik><operator_addytywny>|<operator_multiplikatywny><czynnik>
<operator_addytywny>::="+"|"-"
<operator_multiplikatywny>::="*"|"/"
<czynnik>::=<identyfikator_zmiennej>|<identyfikator_stałej>|<liczba>|<napis>|<proste_wyrażenie>
<instrukcja_if>::="if" "(" <wyrażenie_logiczne> ")" ["{"] {<instrukcja>}+ ["}"] {"else" <instrukcja_if>}*
<wyrażenie_logiczne>::=<czynnik> [<operator_relacyjny> <czynnik>]
<operator_relacyjny>::="=="|"!="|"<"|">"|"<="|">="

<instrukcja>::=<instrukcja_przypisania>|<instrukcja_arytmetyczna>|<instrukcja_if>|<instrukcja_for>
|<instrukcja_zagniezdzona>
<instrukcja_for>::="for" "(" <instrukcja_przypisania>;<wyrazenie_logiczne>;<instrukcja_przypisania> ")" ["{"] {<instrukcja>}+ ["}"]}

<złożone_wyrażenie>::="(" {<instrukcja>}+ ")"

<instrukcja_zagniezdzona>::=<instrukcja_if_w_for>|<instrukcja_for_w_if>|<blok_instrukcji>
<instrukcja_if_w_for>::= "for" "(" <instrukcja_przypisania>; <wyrazenie_logiczne>;
<instrukcja_przypisania> ")"["{"] {<instrukcja_if>}+ ["}"]}
<instrukcja_for_w_if>::="if" "(" <wyrażenie_logiczne> ")" ["{"] {<instrukcja_for>}+ ["}"] {"else" <instrukcja_if>}*
<blok_instrukcji>::="{"{<instrukcja>|<instrukcja_zagniezdzona>}*"}"

<blok_main>::=<typ_danych>"main" "("{<typ_danych><identyfikator>[","]}* ")" "{"<blok_instrukcji> ["return" <cyfra> "] "}"
Siedlce © 2008 | Kontak: Admin