1
A
回答
3
他們替代標籤:
替代標籤
正如我們在7.4節所看到的,標籤規則替代了準確的事件的方法,我們可以得到更精確的解析樹監聽器通過使用#運算符標記規則的最外層選項來實現事件。規則中的所有替代方法都必須加上標籤,否則都不加標籤。這裏有兩個標籤替代方案。
grammar T; stat: 'return' e ';' # Return | 'break' ';' # Break ; e : e '*' e # Mult | e '+' e # Add | INT # Int ;
可選標籤不必位於行的末尾,並且#符號後面不必有空格。 ANTLR爲每個標籤生成規則上下文類定義。例如,這裏是ANTLR生成監聽器:
public interface AListener extends ParseTreeListener { void enterReturn(AParser.ReturnContext ctx); void exitReturn(AParser.ReturnContext ctx); void enterBreak(AParser.BreakContext ctx); void exitBreak(AParser.BreakContext ctx); void enterMult(AParser.MultContext ctx); void exitMult(AParser.MultContext ctx); void enterAdd(AParser.AddContext ctx); void exitAdd(AParser.AddContext ctx); void enterInt(AParser.IntContext ctx); void exitInt(AParser.IntContext ctx); }
來源:https://github.com/antlr/antlr4/blob/master/doc/parser-rules.md#alternative-labels
相關問題
- 1. ANTLR:得到語法樹的最快方法是什麼?
- 2. ANTLR BNF語法符號中的epsilon等價物是什麼?
- 3. ANTLR語法不是回溯
- 4. C#ANTLR語法?
- 5. 在ANTLR語法
- 6. ANTLR語法pred
- 7. CIL ANTLR語法?
- 8. ANTLR的箭語法
- 9. ANTLR的樹語法
- 10. ANTLR什麼是最簡單的方法來實現像縮進語法的Python?
- 11. ANTLR version2語法語法?
- 12. 什麼是語法
- 13. 什麼是##語法?
- 14. 在ANTLR語法中相等(不是令牌)。這是什麼意思?
- 15. 爲什麼減號不能正確地在我的Antlr語法
- 16. 什麼使得antlr中的語法規則左遞歸?
- 17. 我的簡單antlr語法有什麼問題?
- 18. Antlr 3中的語法有什麼問題?
- 19. ANTLR語法教程
- 20. Antlr Left Factoring語法
- 21. 測試ANTLR語法
- 22. ANTLR語法變量
- 23. ANTLR語法問題
- 24. antlr語法定義
- 25. ANTLR V3 SQL語法
- 26. ANTLR語法錯誤
- 27. ANTLR語法if語句
- 28. array.select的語法是什麼?
- 29. setTimeout的語法是什麼?
- 30. URL的語法是什麼
我認爲我做了錯誤的編輯您的帖子。我如何刪除它? – TomServo
我已經拒絕了,我不認爲別人會批准它。 –