antlr 4新特性總結及與antlr v3的不同


antlr 4新特性總結及與antlr v3的不同#

  1. 學習曲線低。antlr v4相對於v3,v4更注重於用更接近於自然語言的方式去解析語言。比如運算符優先級,排在最前面的規則優先級最高;
  2. 層次更清晰、更易維護。引入訪問者、監聽器模式,使解析與應用代碼分離;新増import功能,lexer、parser可以成為公共組件,増加可復用性;
  3. 新算法。改進LL()算法,使用新的Adative LL()算法,在運行時動態分析語法,而LL(*)需要靜態分析語法,考慮各種語法的可能性。
  4. 新用法。引入了一些新用法,如rewrite the input stream、sending token in different channels、island grammars、associativity,可以更方便、靈活地在應用中處理解析對象。
  5. 性能。相對於v3,解析代碼跟應用代碼都是自動生成的,而v4分離了解析與應用代碼的實現,應用代碼的實現及性能則可以由開發人員自主地控制,但新算法據官方指引說會消耗一定的速度上的性能,因此提供了SLL()、LL()的開關,可通過api控制。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM