Comparison of parser generators

From Seo Wiki - Search Engine Optimization and Programming Languages

Jump to: navigation, search

This is a list of notable parser generators for various language classes.

Contents

Regular languages

Name Website Recognition Algorithm Output Languages Grammar / Code Development Platform License
Dolphin [1] DFA C++ separate all proprietary
flex [2] DFA C mixed all BSD
Alex [3] DFA Haskell mixed all BSD
JFlex [4] DFA Java mixed Java Virtual Machine GNU GPL
JLex [5] DFA Java mixed Java Virtual Machine BSD-like[6]
CookCC [7] DFA Java mixed Java Virtual Machine BSD
gelex [8] DFA Eiffel mixed Eiffel MIT
lex  ? DFA C mixed POSIX proprietary
Quex [9] DFA C++ mixed all GNU LGPL
Ragel [10] DFA C, C++, D, Java, Objective-C, Ruby mixed all GNU GPL
re2c [11] DFA C mixed all MIT
Russ Cox's regular expression implementations [12] DFA, NFA Bytecode, x86 assembly language, interpreted separate all MIT

Context-free languages

Name Website Parsing Algorithm Output Languages Grammar / Code Lexer Development Platform IDE License
ACCENT [13] Earley C mixed external all no GNU GPL
ANTLR [14] LL(*) C, C++, C#, Java, Python mixed generated Java Virtual Machine yes BSD
APaGeD [15] GLR, LALR(1), LL(k) D mixed generated all no Artistic
APG [16] Recursive Descent C, C++, JavaScript separate none all no GNU GPL
Beaver [17] LALR Java mixed external Java Virtual Machine no BSD
Bison [18] LALR, GLR C, C++, Java mixed external all no GNU GPL
Bison++ [19] LALR(1) C++ mixed external POSIX no GNU GPL
Bisonc++ [20] LALR(1) C++ mixed external POSIX no GNU GPL
BtYacc [21] LALR C++ mixed external all no public domain
byacc [22] LALR C mixed external all no public domain
BYACC/J [23] LALR C, Java mixed external all no public domain
CL-Yacc [24] LALR(1) Common Lisp mixed external all no MIT
Coco/R [25] LL(k) C, C++, C#, F#, Java, Ada, Pascal, Modula-2, Oberon, Ruby, Unicon, Visual Basic .NET mixed generated Java Virtual Machine, .NET Framework no GNU GPL
CookCC [26] LALR(1) Java mixed generated Java Virtual Machine no BSD
CppCC [27] LL(k) C++ mixed generated POSIX no GNU GPL
CSP [28] LR(1) C++ separate generated POSIX no Apache License 2.0
CSTools [29] LALR C# mixed generated .NET Framework no proprietary
CUP [30] LALR Java mixed external Java Virtual Machine no GNU GPL
DMS Software Reengineering Toolkit [31] GLR Parlanse mixed generated Microsoft Windows no proprietary
DParser [32] Scannerless GLR C mixed generated POSIX no BSD
Dragon [33] LR(1), LALR C++, Java separate generated all no GNU GPL
Dypgen [34] runtime-extensible GLR OCaml mixed generated all no CeCILL-B
Elkhound [35] GLR C++, OCaml mixed external all no BSD
eli [36] LALR C mixed generated POSIX no GNU GPL, GNU LGPL
Essence [37] LR Scheme 48 mixed external all no BSD
eu.h8me.Parsing [38] GLR N/A (state machine is runtime generated) separate external .NET Framework no BSD
eyapp [39] LALR(1) Perl mixed external all no Perl
Frown [40] LALR(k) Haskell 98 mixed external all no GNU GPL
GDK [41] LALR(1), GLR C, Lex, Haskell, HTML, Java, Object Pascal, Yacc mixed generated POSIX no MIT
geyacc [42] LALR(1) Eiffel mixed external all no MIT
GOLD [43] LALR x86 assembly language, ANSI C, C#, D, Java, Pascal, Object Pascal, Python, Visual Basic 6, Visual Basic .NET, Visual C++ separate generated Microsoft Windows yes freeware
GPPG [44] LALR C# separate external Microsoft Windows yes freeware
Grammatica [45] LL(k) C#, Java separate generated Java Virtual Machine no GNU LGPL
Happy [46] LALR, GLR Haskell mixed external all no BSD
HiLexed [47] LL(*) Java separate internal Java Virtual Machine no GNU LGPL
Hyacc [48] LR(1), LALR(1), LR(0) C mixed external all no GNU GPL
jacc [49] LALR Java mixed external Java Virtual Machine no BSD
JavaCC [50] LL(k) Java mixed generated Java Virtual Machine yes BSD
jay [51] LALR C#, Java mixed none Java Virtual Machine no BSD
JFLAP [52] LL(1) Java  ?  ? Java Virtual Machine yes  ?
JetPAG [53] LL(k) C++ mixed generated all no GNU GPL
JS/CC [54] LALR(1) JavaScript, JScript, ECMAScript mixed internal all yes Artistic
Kelbt [55] Backtracking LALR(1) C++ mixed generated POSIX no GNU GPL
kmyacc [56] LALR(1) C, Java, Perl, JavaScript mixed external all no GNU GPL
Lapg [57] LALR C, C++, C#, Java, JavaScript mixed generated Java Virtual Machine no GNU GPL
Lemon [58] LALR C mixed external all no public domain
Lime [59] LALR(1) PHP mixed external all no GNU GPL
LISA [60] LR, LL, LALR, SLR Java mixed generated Java Virtual Machine yes public domain
LPG [61] Backtracking LALR(k) Java mixed generated Java Virtual Machine no EPL
LLgen [62] LL(1) C mixed external POSIX no BSD
LLnextgen [63] LL(1) C mixed external POSIX no GNU GPL
Menhir [64] LR(1) OCaml mixed generated all no QPL
Mini Parser Generator [65]  ? Python mixed generated all no GNU LGPL
ML-Yacc [66] LALR(1) ML mixed external all no  ?
Monkey [67] LR(1) Java separate generated Java Virtual Machine no GNU GPL
More Than Parsing [68] LL(1) Java separate generated Java Virtual Machine no GNU GPL
ocamlyacc [69] LALR(1) OCaml mixed external all no QPL
olex [70] LL(1) C++ mixed generated all no GNU GPL
Parsec [71] GLR Haskell mixed none all no BSD
Parse::Yapp [72] LALR(1) Perl mixed external all no GNU GPL
Parser Objects  ? LL(k) Java mixed  ? Java Virtual Machine no zlib
PCCTS [73] LL C, C++  ?  ? all no  ?
PLY [74] LALR(1) Python mixed generated all no MIT License
PRECC [75] LL(k) C separate generated MS-DOS, POSIX no GNU GPL
QLALR [76] LALR(1) C++ mixed external all no GNU GPL
SableCC [77] LALR C, C++, C#, Java, OCaml, Python separate generated all no GNU LGPL
SmaCC [78] GLR(1), LALR(1), LR(1) Smalltalk mixed internal all yes MIT
SLK [79] LL(k) C, C++, C#, Java separate external all no proprietary
SPARK [80] Earley Python mixed external all no MIT
Spirit [81] Recursive Descent C++ mixed internal all no Boost
Styx [82] LALR(1) C, C++ separate generated all no GNU LGPL
Sweet Parser [83] LALR(1) C++ separate generated Microsoft Windows no zlib
Tap [84] LL(1) C++ mixed generated all no GNU GPL
TextTransformer [85] LL(k) C++ mixed generated Microsoft Windows yes proprietary
Tom [86] GLR C generated none all no proprietary
TinyPG [87] LL(1) C#, Visual Basic  ?  ? Microsoft Windows yes CPOL 1.0
Toy Parser Generator [88] Recursive Descent Python mixed generated all no GNU LGPL
TP Yacc [89] LALR(1) Turbo Pascal mixed external all yes GNU GPL
UltraGram [90] LALR, LR, GLR C++, C#, Java, Visual Basic .NET separate generated Microsoft Windows yes proprietary
Yacc (AT&T) [91] LALR C mixed external POSIX no CPL
Yacc++ [92] LR(1), LALR(1) C++, C# mixed generated or external all no proprietary
Yapps [93] LL(1) Python mixed generated all no MIT
yecc [94] LALR(1) Erlang separate generated all no Erlang
Visual BNF [95] LR(1), LALR(1) C# separate generated .NET Framework yes proprietary
Visual Parse++ [96] LALR C, C++, C#, Java separate generated Microsoft Windows yes proprietary
YooParse [97] LR C++ mixed external all no MIT
Whale [98] LR C++ mixed external all no proprietary
Wisent [99] LALR(1) C++, Java mixed external Java Virtual Machine no GNU GPL
Wormhole [100] Pruning (disambiguater), LR, GLR, Scannerless GLR C, Python mixed generated Microsoft Windows no MIT
Product Website Parsing Algorithm Output Languages Grammar / Code Lexer Development Platform IDE License

Parsing Expression Grammars

Name Website Parsing Algorithm Output Languages Grammar / Code Development Platform License
Aurochs [101] Packrat C, OCaml, Java mixed all GNU GPL
CL-peg [102] Packrat Common Lisp mixed all MIT
Drat! [103] Packrat D mixed all GNU GPL
Frisby [104] Packrat Haskell mixed all BSD
grammar::peg [105] Packrat Tcl mixed all BSD
IronMeta [106] Packrat C# mixed Microsoft Windows BSD
LPeg [107] Parsing Machine Lua mixed all MIT
Narwhal [108] Packrat C mixed POSIX, Microsoft Windows BSD
neotoma [109] Packrat Erlang separate all MIT
NPEG [110] Recursive Descent C# mixed all MIT
OMeta [111]  ? JavaScript, Squeak mixed all MIT
Packrat [112] Packrat Scheme mixed all MIT
Pappy [113] Packrat Haskell mixed all Proprietary
parboiled [114] Recursive Descent Java separate Java Virtual Machine Apache License 2.0
parsepp [115]  ? C++ mixed all Public Domain
Parsnip [116] Packrat C++ mixed Microsoft Windows GNU GPL
peg [117] Recursive Descent C, C++ mixed all MIT
pegc [118]  ? C mixed all Public Domain
PetitParser [119] Packrat Smalltalk, Javascript mixed all MIT
PEGTL [120] Recursive Descent C++0x mixed POSIX MIT
PGE [121] Recursive Descent Parrot bytecode mixed Parrot virtual machine Artistic 2.0
PyPy rlib [122] Packrat Python mixed all MIT
pyPEG [123] PEG parser interpreter Python mixed all GNU GPL
Rats! [124] Packrat Java mixed Java Virtual Machine GNU LGPL
Spirit2 [125] Recursive Descent C++ mixed all Boost
Treetop [126] Recursive Descent Ruby mixed all  ?
Yard [127] Recursive Descent C++ mixed all MIT or Public Domain

Miscellaneous language classes

Name Website Parsing Algorithm Output Languages Grammar / Code Lexer Development Platform License
Whale Calf [128] General Tabular, SLL(k), Linear Normal Form (Conjunctive grammars), LR, Binary Normal Form (Boolean grammars) C++ separate external all proprietary
Scannerless Boolean Parser [129] Scannerless GLR (Boolean grammars) Haskell, Java separate none Java Virtual Machine BSD

See also

External links

Personal tools

Served in 0.431 secs.