주어진 파일에서 모든 길이의 터미널 문자열을 생성하려고합니다. 그런 다음 0
1
0 0
0 1
1 0
1 1
같은 것을 얻을 것입니다 당신이 A = A B
A = B
B = 0
B = 1
같은이있는 경우, 예를 들어 그래서 내가 지나치게 어렵지 않을 것이라고 생각 뭔가하지만 갇히지하고 있습니다. 비 중 하나를 시작 {'B': [['0'
L = ((a^n)(b^n+m)(a^m)) | n, m = 0, 1, 2...)
저는 문맥 자유형 문법을 처음 접했고 기본 사항을 알고 있지만 잠시 동안 고민하고 있습니다. 나는 코드의이 부분이 무엇을 의미하는지 잘 모릅니다 우선 들어 : | n, m = 0, 1, 2...)
그리고 둘째로, 어떻게 다른 지수와 같은 변수를 가질 수 있습니다? 나는
두 가지의 차이점을 이해합니다. 애매한 트리에 단 하나만있는 반면, 모호성은 2 개의 구별되는 구문 분석 트리가있는 문자열이 하나 이상 있다는 것을 의미합니다. 그러나 나는 하나를 다른 것으로 바꾸는 것처럼 보이지 않는다. 어떻게 다음의 모호한 문법을 모호하지 않은 문법으로 변환합니까? S -> aSb
S -> abS
S -> lambda
편집
문맥 자유 문법을 배우고 있는데 C 나 C++ 같은 프로그래밍 언어에서 표현, 요소 및 용어를 식별하는 방법을 이해하지 못합니다. id : = E 여기서 E는 임의의 산술 식입니다. 용어 란 무엇입니까? 표현이란 무엇입니까? 실제 코드에서 어떤 요소가 있습니까? 우리는 int i = 3, j = 14
int i = 3 + j * 14;
매우 감사 할
이것은 내가 잘못 대답 한 숙제 할당 문제였습니다. 나는 주어진다 : S -> ''
의미는 S가 빈 문자열을 산출한다는 것을 의미한다. 나는 빈 집합과 빈 문자열이 같지 않다는 것을 안다. 내 교수에 따르면, 대답은 : S -> S
지금, 그 대답은 나에게 이상한 것 같다 : 그것은 종료하지 않습니다 . 하나가 없으면 언어가별로 없습니다. 엄밀히 말
는 이제 파서를 작성하려고 C++ BNF 거기에 다음 라인 selection-statement:
if (condition) statement
if (condition) statement else statement
발견했다. 구문 분석 트리를 작성해야합니다. 입력에서 나는 BNF와 소스 파일을 가지고있다. 하지만 난 내 파서를 가리킬 수
xml 노드 이름의 유효성을 검사 할 regex를 만들고 싶습니다. 이름에 대한 문법을 찾았지만 그 중 일부가 무엇을 의미하는지 모르겠습니다. http://www.xml.com/pub/a/2001/07/25/namingparts.html [4] NameChar ::= Letter | Digit | '.' | '-' | '_' | ':' | Combini
왜이 간단한 문법을 이해할 수 없는지 - grammar Test;
file : ID;
ID : .*;
이이 오류를 유발합니다 - Test.g:3:6: The following alternatives can never be matched: 1
왜 이런 일이 발생합니까?