나는 Bison 도움말을보고이를 작성했지만 완전히 정확하지는 않습니다. 또한 어휘 분석기 (Flex 도구 여야 함)를 처리하는 yylex()이 필요합니다. 문맥없는 문법에 대한 기본적인 것들을 알고 있습니다. 그러나 나는 그들을 정확하게 구현하는 방법을 모른다! :( 나는 HTML에 대한 간단한 들소 문법을 원하는 질문은 다음과 같습니다. 문법을 다음으로
이 문법에 의해 생성 된 언어를 찾기 위해 프로덕션 규칙을 수동으로 적용해야합니까? 지루하고, 속도를 높이기위한 트릭/팁이 있습니까? G = {{S, B}, {a, b}, P, S}
P = {S -> aSa | aBa, B -> bB | b}
편집 : 그 비 터미널 기호에 의해 생성 된 각 언어에 대해 생각하고 그들을 결합되어, 좋은 Matajon의
실제 현대 정규 표현식이 실제로 인식하는 언어 클래스는 무엇입니까? 역 참조 (예 : (.*)_\1)가있는 제한되지 않은 길이 캡처 그룹이있을 때마다 정규 표현식이 이제는 비정규 언어와 일치합니다. 그러나 이것만으로도 S ::= '(' S ')' | ε과 같은 내용을 검색하기에는 충분하지 않습니다. 문맥이없는 괄호 쌍을 사용하는 언어입니다. 재귀 regex
내가 CFG로 작업 한 이래로 얼마간이 지났습니다. 어쨌든, 나는 모든 연산을 적절하게 처리하는 특정 문법을 가지고 있지만 마지막에는 다른 표준 수학 연산을 배제했습니다. S :: = S + T | S-T | T T :: = nonterminal | ID | -S | (S) 내가 가진 모든 것 .. 나는 -S가 -T이어야 함을 안다. 그러나 부가 적으로 .
ANTLR 문법 구문을 다른 BNF 구문과 다른 구문으로 변환하는 도구가 있습니까? 사양이있는 Backus-Naur Form (BNF, EBNF, ABNF, W3C-BNF, XBNF ...)이 몇 가지 있습니다. see this list. ANTLR 문법 구문은 described by examples 인 것 같습니다. ANTLR 문법 파일에는 문맥 자유 구
철도 다이어그램은 문맥이없는 문법을 시각화하는 데 널리 사용되는 방법이며 Backus-Naur Form을이 다이어그램에 매핑 할 수 있습니다. 그러나 some variants of BNF, 예를 들어 W3C-BNF은 예외를 허용합니다 (문맥 자유 언어는 차이가 없으므로 이러한 예외는 규칙적이어야합니다). 나는 철도 다이어그램에서 예외가있는 문법을 시각화하고
우선 내가 물어 보는 것에 대한 올바른 번역인지 여부는 알 수 없습니다. 내 수업 중 하나에서 우리는 정규식, 공식 언어 등에 대해 배우는 것을 봤습니다. Alphabet {1,0,S,R}
Terminals {1,0}
Rules:
S ::= 0
S ::= 1
S ::= 1R
R ::= 1R
R ::= 0R
R ::= 1
R ::= 0