5
向Antlr提供大量令牌的最佳方式是什么? 假设我们有一个100,000个英语动词的列表,我们如何将它们添加到我们的语法?我们可能因为包含一个巨大的语法文件,如verbs.g,但也许有一个更优雅的方式,通过修改.token文件等?来自文件的Antlr令牌
grammar verbs;
VERBS:
'eat' |
'drink' |
'sit' |
...
...
| 'sleep'
;
也应该令牌而不是词法分析器或分析器令牌,即VERBS:或动词:?可能是VERBS :.
更新:文件english_verbs.g不能被antlr使用,尽管t事实上,没有特殊字符发生: at org.antlr.tool.GrammarSanity.traceStatesLookingForLeftRecursion(GrammarSanity.java:149)...(重复10^99次) – 2012-02-09 01:48:58
无论你做什么都可能会测试识别器的限制。 – dasblinkenlight 2012-02-09 01:53:48
不,你不可能用许多规则创建一个词法分析器。有关解决方法,请参阅:http://stackoverflow.com/questions/9008134/dynamically-create-lexer-rule – 2012-02-10 08:05:42