¿Cuál es la mejor forma de alimentar a Antlr con un gran número de tokens? Digamos que tenemos una lista de 100,000 verbos en inglés, ¿cómo podríamos agregarlos a nuestra gramática? Podríamos incluir un gran archivo de gramática como verbos.g, pero tal vez hay una manera más elegante, modificando un archivo .token, etc.Fichas Antlr del archivo
grammar verbs;
VERBS:
'eat' |
'drink' |
'sit' |
...
...
| 'sleep'
;
También deberían los tokens más bien ser analizadoras o analizador tokens, es decir, verbos: o verbos:? Probablemente VERBS :.
Actualización: Un archivo english_verbs.g no puede ser consumido por antlr a pesar de t El hecho de que no hay caracteres especiales se producen: en org.antlr.tool.GrammarSanity.traceStatesLookingForLeftRecursion (GrammarSanity.java:149) ... (se repite 10^99 veces) –
Lo que sea que haga probablemente pruebe los límites del reconocedor. – dasblinkenlight
No, no hay forma de que pueda crear un lexer con muchas reglas. Para un trabajo alrededor, mira: http://stackoverflow.com/questions/9008134/dynamically-create-lexer-rule –