0
논리식, 변수 할당 및 인쇄 인 & 산술을 사용하는 하위 언어에 대해이 문법이 EBNF에 있습니다. EBNF : 두 개의 프로덕션 규칙의 목적이 누락되었습니다.
start ::= (print | assign)*
print ::= print expr ;
assign ::= ID = expr ;
expr ::= andExpr (|| andExpr)*
andExpr ::= relExpr (&& relExpr)*
relExpr ::= addExpr (== addExpr | != addExpr | <= addExpr | >= addExpr | < addExpr | > addExpr)?
addExpr ::= mulExpr (+ mulExpr | - mulExpr)*
mulExpr ::= unExpr (* hunExpri |/hunExpr)*
unExpr ::= + unExpr | - unExpr | ! unExpr | primary
primary ::= (expr) | ID | NUM | true | false
불행히도 난 그냥 알아낼 수있는이 두 가지 규칙 :
unExpr :: = + unExpr
unExpr :: = -
실제로 할 unExpr, 또는 내가 필요로해야하는 이유 그것들을 적용하지 않고 언어의 모든 구절을 도출 할 수있는 것처럼 보입니다. 어떤 생각?
감사
물론 ... 나는 그것을 예견하지 못했다. 고마워, 너는 매우 유용했다 :-) – slovo