논리식, 변수 할당 및 인쇄 인 & 산술을 사용하는 하위 언어에 대해이 문법이 EBNF에 있습니다. start ::= (print | assign)*
print ::= print expr ;
assign ::= ID = expr ;
expr ::= andExpr (|| andExpr)*
andExpr ::= relExpr (&& relExpr)*
에 의해 내가 좋아하는 캐릭터있어? 나는 [a-zA-Z0-9] (우리가 모르는 것들)이 배열에 저장된다는 것을 의미합니까? 사람 + 에 fname 문자열 + : ^create [a-zA-Z][a-zA-Z0-9]* [s|b]?[+|[-]|=][a-zA-Z][a-zA-Z0-9]*[ ]?:[ ]?[a-zA-Z][a-zA-Z0-9]*(, [s|b]?[+|[-]|=
나는 여기에서 성취 할 수없는 것을 묻고 있을지도 모른다. 어쩌면 누군가가 가리킬 수있다. (a) (다소 복잡하다.) antlr 문법 (b) 왜 (해당되는 경우) 이것은 단순히 달성 될 수 없습니다. 예 : 어쩌면 antlr이 확장 된 BNF이고 그 재귀 적 구조가 bnf 요구 사항과 다르다. 그것이 ANTLR 3 문법 인 경우
여름 프로젝트로 언어와 컴파일러를 작성하려고합니다. 구문 분석 트리 또는 BNF/EBNF를 사용하는 방법에 대한 정보를 찾는 데 어려움을 겪고 있습니다. 작성자를 프로그램하십시오. 전반적인 목표는 단순화 된 함수 언어 구문을 c로 구문 분석하는 컴파일러를 작성하는 것입니다. 나는 현재이 컴파일러를 C 언어로 작성하려고 계획하고 있지만 누군가가 더 좋은 아이
나는이 안돼서 질문 수 있습니다 알지만, (EBNF를 사용하는 메타 언어에 종이에서)이 문장의 의미를 만들려고 노력 해요 : Logical and (&) binds stronger than logical or (|).
전에 그것은 말한다 : Conditions are:
condition ::= condition (`&´ | `|´) condit
확장 BNF에 대해 질문이 있습니다. (* Extended BNF grammar *)
min = 5;
max = 10;
value = integer; (* How can I set the range rule: `min <= value <= max`? *)
두 번째 질문 : ISO/IEC 14977 읽은 name = letter, { letter |