- Lex/Yacc
它生於Unix,是最經典的詞法\語法分析器,是經典教材中的示例御用工具。現在它也支持在Windows上生成(安裝環境),然而其所生成語法分析器的語言僅有C語言。
- Flex/Bison
與前者類似,Bison與Yacc有很高的兼容性。生成語言為C、C++和Java。
- CoCo/R
較早的一個語法分析器生成工具。其生成語法分析器的語言極其之多,包括C#、 Java、 C++、F#、VB.Net、Oberon等等。
- ANTLR
作為翻譯程序的一部分,你可以使用簡單的操作符和動作來參數化你的文法,使之告訴ANTLR怎樣去創建抽象語法樹(AST)和怎樣產生輸出。ANTLR知道怎樣去生成識別程序,生成語法分析器的語言包括Java,C++,C#. 語法有點麻煩。
- GOLD
它是一個較為復雜的分析器,支持語言貌似最多。生成語言包括(官網說的):Assembly - Intel x86 、ANSI C、C#、D、Delphi、Java、Pascal、Python、Visual Basic、Visual Basic .NET、Visual C++、所有.NET語言、所有ActiveX語言。難以想象這居然是個免費的軟件。
- Grammatica
這是一個C#和Java的語法剖析器生成器(Parser Generator或叫作編譯器的編譯器:Compiler Complier) 。它相對於其它一些類似的工具如yacc和ANTLR有了更好的改進。這是因為Grammatica:
1.創建了更好的注釋和易讀的源代碼.
2.擁有錯誤自動恢復並能夠詳述錯誤信息.
3.支持語法/詞法測試與調試.
- JavaCC
它是用JAVA開發的最受歡迎的語法分析生成器之一。它還提供JJTree等工具來幫助我們建立語法樹。它還有一個用於輔助JavaCC應用程序開發的Eclipse插件.生成語法分析器語言為java。
還有很多語法分析器生成工具,比如JFlex、SableC、Beaver、JTopas、Runcc、CUP、SJPT、Chaperon。但我實在是沒精力一一介紹了,之前實在沒想到這工具如此繁多。