2013-10-31 63 views
1

說我有一個語法,它有一個解析器規則來匹配幾個特定字符串之一。 在語法中爲每個特定字符串制定替代解析器規則,還是保持解析器規則通用並將字符串解碼爲訪問者子類,是否應該這樣做?ANTLR4解析器規則粒度

回答

2

如果特定的字符串是有意義的(例如DSL中的關鍵字),它聽起來像你想要的令牌。無論您在語法中擁有哪些規則都可以引用您創建的令牌。

一般來說,最好是讓語法儘可能多的解析器工作,而不是過度泛化,不得不編寫一堆額外的代碼。

參見以下內容:http://www.antlr.org/wiki/display/ANTLR4/Grammar+Structure

+0

太棒了!這是我的直覺是使用令牌,而不是不必要地使事情複雜化。謝謝您的幫助! – cowboydan