4
我正在擴展ANTLR4中的監聽器,並且我想要獲取與解析器中的特定規則相關聯的所有標記,有沒有一種方法可以做到這一點?ANTLR4:獲取監聽器中特定規則的標記列表
即
myConfiguration: CONFIG EQUALS parameters ;
parameters: ALPHANUMERIC+
CONFIG: 'config' ;
ALPHANUMERIC: [a-zA-Z0-9] ;
我怎麼能告訴我的聽衆查找的CONFIG
和EQUALS
值進入myConfiguration
解析規則時?
是否有我可以使用的某種循環?
for(all tokens in this rule) {
System.out.println(token.getText());
}
我可以看到有就是通過解析類令牌的列表,但我不能找到它與當前規則相關的令牌的列表。
我問這個問題的原因是爲了避免重新輸入我在Listener AND語法中需要的令牌名稱。通過這樣做,我可以檢查是否已經找到該特定規則中的每個令牌類型,而無需手動輸入名稱。
我試了一下代碼,它給了我在分析樹中找到的標記的值。我正在尋找一種方法來獲取在解析規則中可用的常量標記名稱,如果可能的話,應該可以在解析樹行走之前獲取它們。即myConfiguration規則應該爲我提供:CONFIG EQUALS參數的標記 - 以標記的形式,而不是我可以從中提取其名稱的值。上面給出的例子取決於輸入而不是詞法分析器。我正在尋找匹配任何特定規則之前匹配的實際令牌。 – Har 2013-02-22 09:56:35
這似乎是讓聽衆儘可能獨立於語法的唯一方法。 – Har 2013-02-27 11:13:23