antlr

    1

    1답변

    은 규칙의 '토큰', 즉 일종의 ANTLR 4 형의 인수를 가진 파서 규칙을 생성 할 수 있습니다 목록과 일치해야합니다 list[elem Token] : '[' elem (',' elem)* ']'; 'elem'유형의 토큰 예를 들어 list [ID]는 식별자 목록과 일치해야하며 list [String]는 위 규칙에 지정된 구문에 따라 문자열 목록과 일

    1

    2답변

    나는 문법을 테스트하고 있는데 토큰으로 인식되는 토큰이 보이지 않습니다. 처음에는 아마도 StackOverflow link을 기반으로 "암시 적"토큰을 만들었다 고 생각했습니다. 또한 grun -tokens의 출력을 검토 할 때 다음 링크를 발견했습니다. 1) 최근 Change - tookens output. 2) 가능성이 오래됨 testrig.md 나는

    1

    1답변

    ANTLR4 위에 일종의 자동 완성 도구를 만들려고하는데 문제가 생겼습니다 (아마 제 이해와 함께). ErrorListener을 사용하고 RecognitionException 오브젝트에서 적용 가능한 토큰을 얻으려고 시도하지만이 접근법은 항상 작동하지 않습니다. grammar WhereClause; USER_NAME_COLUMN: 'user_name'

    1

    1답변

    LL (k) 파서의 왼쪽 왼쪽 재귀 문제에 대해 StackOverflow에서 많은 질문을 읽었습니다. 나는 왼쪽 재귀를 제거하기위한 일반적인 알고리즘을 발견 A : Aa | b ; 그러나 A : bR ; R : (aA)? ; 이되고, 나는 나의 상황에 적용하는 방법을 알아낼 수 없습니다. 나는 등 left_exp: IDENT | exp DOT ID

    0

    1답변

    여기 내 문법. grammar MainGrammar; mainFile: statement*; statement: stackStatement NL; stackStatement: KEYWORD WS INT; INT: [0-9]+; KEYWORD: 'def'; SENTENCE: (~[\r\[email protected]:=])+; WS: [ \t

    0

    1답변

    목표는 선택적 호스트 이름을 포함 할 수도 있고 포함하지 않을 수도있는 (프로토콜없이) URL을 일치시키는 것입니다. 예를 들어 amce.com/a/path /다른/경로/EXPR A/경로 /하지/starting_with/슬래시 모든 3가 일치해야 하지만 이상적으로 문법 첫 번째 표현식에서 호스트 이름 - acme.com을 복구 할 수 있습니다. 그래서 파서

    2

    1답변

    비교적 단순하지만 특이한 언어의 파서를 작성하려고합니다. 간단히 말하면, 별표가 행의 첫 번째 문자 인 경우 주석 행은 별표 으로 표시된다는 규칙 중 하나입니다. ANTLR4에서 그러한 규칙을 공식화하려면 어떻게해야합니까? 내가 사용하는 방법에 대한 생각 : START_LINE_COMMENT: '\n*' .*? '\n' -> skip; 을하지만 마지막에

    1

    1답변

    코드 완성 기능을 텍스트 편집기에 추가하려고합니다. 나는 Antlr으로부터 비 의미 론적 콘텐츠 보조 제안을 얻을 수 있다고 생각했다. 이 시점에서 필자는 여러 개의 ParserRuleContext를 가지고 있습니다. 모든 유형의 ParserRuleContext의 모든 터미널 노드에 접근하려고합니다. 예를 들어 아래와 같은 bnf가 있습니다. class

    1

    1답변

    ANTLR4에서 식별자를 일치시키려는 문제가 있으며 시간이 지나면 문제가있는 것 같습니다. prog: (EOL)* statements; statements: statement (EOL)+ (statement (EOL)+)* ; statement : declaration ; declaration : mutability ' '+ ident ' '* ass

    0

    1답변

    grammar Poly; options { output=AST; ASTLabelType=CommonTree; } poly : term(TLK^ term)* ; term : a=ID b=INT -> ^($a $b)* ; INT:'0'..'9'; ID:'a'..'z'; TLK:('PUSH