Çok sayıda jetonla Antlr beslemenin en iyi yolu nedir? 100.000 İngilizce fiilden oluşan bir listemiz var, bunları dilbilgimize nasıl ekleyebiliriz? Biz neden verbs.g gibi büyük bir dilbilgisi dosyası içerebilir, ancak belki bir .token dosya vb değiştirerek, daha zarif bir yol var? veya fiiller:Dosyadan Antlr belirteci
grammar verbs;
VERBS:
'eat' |
'drink' |
'sit' |
...
...
| 'sleep'
;
Ayrıca belirteçleri yerine lexer veya ayrıştırıcı belirteçleri, yani fiiller olmalıdır:? Muhtemelen VERBS:.
Güncelleme: Bir dosya english_verbs.g, t özel karelerin oluşmadığı gerçeği: org.antlr.tool.GrammarSanity.traceStatesLookingForLeftRecursion (GrammarSanity.java:149) ... (tekrarlanan 10^99 kez) –
Muhtemelen ne yaparsanız yapın, tanıyıcıların sınırlarını test edebilirsiniz. – dasblinkenlight
Hayır, pek çok kural içeren bir lexer oluşturmanın yolu yoktur. Bir iş için, bkz: http://stackoverflow.com/questions/9008134/dynamically-create-lexer-rule –