3
ANTLR에서 AST를 작성하는 동안 문제가 있습니다 (ANTLR 3.2, ANTLRWorks 1.4 사용). - ('extends' e=IDENTIFIER)?
ANTLR의 AST에 대한 선택적 다시 쓰기 규칙
classDeclaration
:
(
'class' n=IDENTIFIER ('extends' e=IDENTIFIER)?
'{'
…
'}'
)
-> ^(CLASSDECLARATION ^(NAME $n) ^(EXTENDS $e)
;
문제는 클래스의 선택적 부분에 발생
이
내 문법이다. 다음과 같이class Test1 extends AbstractTest1 {
…
}
내가 extends
부분을 제외하면 실패 :
class Test2 {
…
}
ANTLR 그냥이 조각되기 전에 중지하고이 예외를 제공
그래서 문법이 클래스 선언으로 좋은 작품 콘솔 :
다시 쓰기 규칙을 처리하기 위해 ANTLR을 가리킬 수 있습니까 ^(EXTENDS $e)
은 선택 사항입니까?