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