주어진 언어 K = {e^h f^i | 2h> i> h} 문맥 자유 문법을 생성해야합니다. 내가 만든 몇 가지 제작 규칙은 다음과 같습니다. S -> eeTfff 및 T -> eTff | ε n = m + 1 인 경우에만 작동하지만 2h> i> h의 모든 조합에 대해 규칙을 생성하는 방법을 알지 못합니다.
ANTLR4에서 함수를 구현했습니다. 예 : - 기능 ("A", "B") 문법 1 및 제 2 매개 변수를 구별 할 수없는 입력 FUNCTION(,"B") 들어 parse
: block EOF
;
block
: 'FUNCTION' LPAREN (atom)? COMMA (atom)? LPAREN
;
at
스칼라에서 프로그램을 실행하는 데 문제가 있습니다. 나는 언어에 아주 익숙하고 intellij에서 설정할 수 없었기 때문에 지금은 숭고하고 터미널에서 실행하려고합니다. microproject 클래스를 실행하려고하면 arrayindexoutofbounds 오류가 계속 발생합니다. 누군가 내게 큰이 프로그램을 실행하는 방법을 알아내는 데 도움 주시기 바랍니다
다음 문법을 고려하십시오. 예를 들어 연산자 우선 순위와 관련된 문제가 있습니다. res = 2 * a + b는 res = 2 * (a + b)와 비슷한 구문 분석 트리를가집니다. 나는 문제가 어디 있는지 알고 있지만, 상호 왼쪽 재귀가없는 "아름다운"해결책은 내 마음에 온다. 좀 도와 주실 래요? 문법은 맞춤 방문자와 함께 사용됩니다. 우선, 왼쪽 재귀
저는이 EBNF 문법을 읽는 데 도움이 필요했습니다. 나는 그것에 익숙하지 않고 특히 처음에는 이해하지 못합니다. 두 번째 것을 이해하지만 첫 번째 문법과 어떻게 관련되어 있는지 이해하지 못합니다. . 기간 :: = 차 {(T_STAR | T_SLASH) 기간} 차 :: = T_ICONST | T_SCONST | T_ID | T_LPAREN EXPR T_R
BibTeX 작성자 필드를 구문 분석하고이를 별도의 작성자로 분할하려고합니다. 이렇게하면 각 저자의 머리 글자를 다시 쓸 수 있습니다. use v6;
my $str = '{Rockhold, Mark L and Yarwood, RR and Selker, John S}';
grammar BibTexAuthor {
token TOP {
일부 명령을 구문 분석하는 문법을 만들고 싶습니다. 대부분은 완벽하게 작동하지만 "if (조건, then-value, else-value)"가 "out"명령과 함께 작동하지 않아 일부 값을 표시합니다. 그것은 잘 작동하는 경우에 출력 명령은 외부에있는 경우-명령을 out(if(1,42,43))
출력 → 하고 확인을 예상대로 42을 반환 그러나 순간에 출
S->/ASBS/ε가 허용 다음과 같이하는 것입니다 AS : S-> aSbS->은 {ASBS} BS-> AA {ASBS} bSbS을 -> aaa {aSbS} bSbSbS 각 단계마다 모든 S를 바꿔야합니까? 예를 들어 두 개 중 하나를 바꿀 수 있습니까? 이것에서 : aSbS는 (규칙 S-> ε에 따라) aSb를 수행 할 수 있고, 같은 규칙으로 모든 S를