expressão regular símbolo antlrV3
-
19-09-2019 - |
Pergunta
Posso escrever uma regra onde o token inicial é parcialmente fixo e parcialmente genérico?
rule: ID '=' NUMBER
;
ID: (A.. Z | a.. Z) +
NUMBER: (0 .. 9) +
Mas apenas se o ID token é na forma var * (var é fixo)
Graças
Solução
Você quer dizer isso?
// Use this instead of ID in all parser rules that take either token
identifier
: VAR_ID | ID
;
VAR_ID
: 'var' ('A'..'Z' | 'a'..'z')*
;
ID
: ('A'..'Z' | 'a'..'z')+
;
De qualquer maneira : quando possível, faça não usar um rigoroso gramática lexer para as suas mensagens de erro. Eles são mais lento e completamente ilegível para usuários . Você deve analisar ID
de uma forma relaxada, em seguida, verifique mais tarde se é precisamente a forma correta.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow