antlr4

    1

    1답변

    렉서 대 파서 수준에서 작성된 규칙의 동작을 이해할 수있는 사람이 있습니까? ctx.basicInterfaceType().getText()로 액세스 할 때 null가 BASIC_INTF_TYPE() BASIC_INTF_TYPE : ('Port-channel' | 'fortyGigE' | 'TenGigabitEthernet' | 'GigabitEth

    2

    1답변

    ANTLR 4의 의미 적 술어에 문제가 있습니다. 내 문법은 구문 적으로 모호하며 모호성을 해결하기 위해 하나의 토큰을 찾아야합니다. 예를 들어 "2012 년 1 월 19 일 오후 9 시까 지"를 "2012 년 1 월 19 일"으로 구문 분석하여 파서의 다음 토큰을 "until"으로 남겨 둡니다. 그리고 파서의 다음 토큰 "7"을 사용하여 "Jan 19,

    4

    2답변

    현재 "컴파일러 생성"과정에 참여하고 있으며 Antlr 4에서 단순화 된 Java 문법을 개발 중입니다. Java 문법과 관련된 부분은 잘 작동합니다. 원래 자바. 대괄호를 사용하지 말고 들여 쓰기를 사용해야한다고 들었습니다. Antlr 4에서 작동하지 않는 Antlr 3에 대한 예제 만 인터넷에서 시도해 보았습니다. Antentr 4에 대한이 들여 쓰기

    0

    1답변

    내 실수를 볼 수 없습니다. 간단한 회문 문법을 감안할 때 : // test1.g grammar test1; start : 'a' start 'a' | 'b' start 'b' | 'a' | 'b' | ; WS : [ \t\r\n]+ -> skip ; 입력 aabbbaa, 생성 된 파서 보

    0

    1답변

    다음과 같은 간단한 문법 문법을 사용하면 구문 분석 결과 파서는 회문이 아닌 a와 b의 조합 을 허용하는 것으로 보입니다. [글쎄, 내가 잘못 시작 심볼을 지정했을 때 사실이었다; 지금은 수정하기 위해 수정했지만 여전히 원하는 동작을 얻지 못하므로 정확한 명령을 추가하여 [제안 된 변경 사항 및 결과 문제를 표시하고 다시 수정하여 제안 된 변경 사항 및 그

    5

    1답변

    ANTLR v4에서는 VBA와 같이 큰 따옴표로 이스케이프 처리 된이 따옴표로 어떻게 이런 종류의 문자열을 구문 분석합니까? 텍스트 : "some string with ""john doe"" in it" 목표는 문자열을 식별하는 것입니다 : some string with "john doe" in it 을 그리고 그것은 하나의 큰 따옴표로 이중 따옴표를

    1

    1답변

    ANTLR4에서 술어는 하위 규칙 앞에 건너 뛸 수 있기 때문에 하위 규칙을 건너 뛸 수 있습니다. 내 문법에서 일부 술어는 서브 규칙의 끝 부분 근처에 나타나는 토큰에 의존하며 그 앞에 하나 이상의 규칙 호출이 있습니다. 예를 들어이 특정 예에서 date : {isYear(_input.LT(3).getText())}? month day

    2

    1답변

    코드/엑스트라의 CPP 예제를 모델로하여 DSL 용 전처리기를 구현하려고합니다. 그러나 토큰 팩토리를 사용하고 있지 않습니다. 하나가 필요합니까? emit (토큰)을 호출해도 예상대로 토큰이 토큰 스트림에 삽입되지 않습니다. // string-delimited path SPATH : '"' (~[\n\r])*? '"' { e

    0

    1답변

    문법 모호성 입력 c9에 대한 grammar Hello; odataIdentifier : identifierLeadingCharacter identifierCharacter*; identifierLeadingCharacter : Alpha| UNDERSCORE; identifierCharacter : identifierLeadingCharacte

    2

    1답변

    다음 문법 문제를 보여 : // test Antlr4 left recursion associativity grammar LRA; @parser::members { public static void main(String[] ignored) throws Exception{ final LRALexer lexer = new LRALexer(