instaparse 라이브러리를 사용하여 org 모드 파일에 대한 파서를 작성하려고합니다. 이 라이브러리는 EBNF 표기법을 사용하여 구문 분석 함수로 변환합니다. 조직 모드 파일은 별의 수는 윤곽 트리의 레벨을 설정할 경우 내 첫 번째 시도는 동일한 수준에있는 모든 헤드 라인을 넣어하는 것이 * Headline
** Sub headline1
** Su
아래 정의를 살펴보십시오. 이것이 정확히 정의되어야하는 것은 무엇입니까? EBNF specification에 따르면 괄호 []은 선택 항목을 정의하므로 *이 필요한 이유는 무엇입니까? 그 것이 불필요한가요? (0 번 이상 반복한다는 뜻이기 때문에)? 두 번째로 괄호 안에 어떻게 파트를 해석합니까? -은 제외 표시이므로 괄호 안에있는 항목이나 세 시퀀스 모두
저는 도메인 특정 언어 용 파이썬 라이브러리를 개발 중이며 최대한 많은 언어 정의를 포함하고자합니다. 정규 표현식의 경우 형식이 모든 구현에서 동일하고 regexlib와 같은 여러 저장소가 있으므로 쉽습니다. (예 : regexlib.com과 같은) 많은 BNF/eBNF 언어 예제를 사용할 수있는 온라인 라이브러리/저장소가 있습니까?
내가 한 EBNF에서 다음이 명 생성 규칙 : <CharLiteral> ::= ' " ' [ <Printable> ] ' " '
및 <StringLiteral> ::= ' " ' { <Printable> } ' " '
둘 사이의 차이점은 무엇입니까? [] 1 회 이상의 반복을 의미하고 {}은 0 회 이상의 반복을 의미합니까?
xml의 xamSyntaxEditor에서 구문 강조를 얻으려고 xml의 CustomLanguage를 만들려고합니다. 나는 "How to use infragistics syntax parsing engine?"을보고 XML을위한 EBNF 파일을 얻고 Infragistics.Documents.Parsing.Grammar.LoadEbnd() 메서드를 사용하는 것
ANTLR을 처음 사용하고 다음을 시도합니다. 오류에서 일반 사항을 정의하고 그 아래의 규칙을 보이는 것처럼 보입니다. 도달 할 수없는/중복 된 것입니다. ANTLR이 불평하는 불필요한 정보는 MAPPING, STROPS, UNARYOPS, ARITHEMATICOPS, MATHLOGICALOP, LOGICALOP, OP1, OP2, OP3, OP4입니다.
필자는 antlr 문법에 이상한 문제가 있습니다. 다음과 같이 보입니다. 이제 여기서 문제는 "singlerule" X.Y EQUALS A.B 작동하지만 모든 수학 동작 테스트입니다 동안 같은 X.Y > 100이 작동하지 않습니다. 다음과 같은 오류가 발생합니다 : line 1:4 no viable alternative at input '>' 이 문제가 왜