0
내 Xtext
문법에 터미널 목록이 있습니다. 어떻게 작동하는지 테스트 할 수 있으며 토큰 충돌이 없습니다. 예를 들어Xtext : xtext 렉서를 테스트하려면 어떻게해야합니까?
다음 터미널 :
terminal COMMA: ',';
terminal QUESTION: '?';
terminal IDENTIFIER: ('a'..'z'| 'A'..'Z')+;
terminal LENGTH: 'LENGTH' | 'l' | 'len';
terminal SEMICOLON: ';' ;
나는 예를 IDENTIFIER
및 LENGTH
위해 이렇게 서로 LENGTH
을 충돌하지 않는 있는지 확인하려면 또는 LEN은 LENGTH
하지 IDENTIFIER
의 토큰을 제공합니다. (처음에 정의 된 토큰이 우선적이라고 가정하면 위의 문법에 잘못되었습니다)
@Sebastien Zarnkoow 그렇습니다. 충돌은 괜찮습니다. 그러나 "HelloWorld"를 입력하고 식별자 토큰을 얻고 싶다고 말하는 일반적인 테스트 사례는 어떻게됩니까? 테스트에서는 "Test"("HelloWorld") == Tokens.ID가 실패하면 통과하지 못하게되어 필자는 필요한 모든 토큰을 필자가 처리했는지 확인합니다. 예를 들어 Antlrworks에서 토큰을 볼 수 있으며 구문 분석 후에 내가 원하는 토큰인지 확인할 수 있습니다. – Har
xtext-utils에 대한 링크로 답변을 업데이트했습니다. –
감사합니다 :) xtext-utils의 testTerminal (...)은 무엇을 찾고 있는지를 나타내는 exaclty입니다. – Har