Грамматика языка С: различия между версиями

Материал из Вики проекта PascalABC.NET
Перейти к навигацииПерейти к поиску
(Новая: progr: | progr OperatorSequence ; Operator: def | assign | if | while | OutPut | BOperator ; BOperator: BEGIN OperatorSequense END ; OperatorSequense: | Operatorsequense op...)
 
Нет описания правки
Строка 1: Строка 1:
progr:
<source lang="">progr:
| progr OperatorSequence
| progr OperatorSequence
;
;
Строка 62: Строка 62:


while: WHILE LB expr RB operator
while: WHILE LB expr RB operator
</source>

Версия от 14:22, 15 сентября 2011

progr:
	| progr OperatorSequence
	;

Operator: def
	| assign
	| if
	| while
	| OutPut
	| BOperator
	;

BOperator: BEGIN OperatorSequense END
	;

OperatorSequense: 
	| Operatorsequense operator
	;

def: ident varlist SEMICOLUMN
	;

varlist: ident
	| varlist COMMA ident
	;

assgin: ident ASS expr SEMICOLUMN
	;

expr 	
	: ident 
	| INTNUM 
	| REALNUM
	| TRUE 
	| FALSE
	| MINUS expr %prec UMINUS 
	| LB expr RB
	| expr PLUS expr 
	| expr MINUS expr
	| expr MULT expr
	| expr DIVIDE expr 
	| expr EQ expr
	| expr NE expr
	| expr LT expr
	| expr LE expr
	| expr GT expr
	| expr GE expr
	;

operand: ident
	| const
	;

const : intConst
	| realCOnst

if: IF LB expr RB operator elsepart
	;

elsepart:
	| operator

while: WHILE LB expr RB operator