Jump to content

Comparison of parser generators

From Wikipedia, the free encyclopedia

This is an old revision of this page, as edited by Hyperyl (talk | contribs) at 09:58, 24 December 2008 (→‎Context-free languages: correct typo). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

This is a list of notable parser generators.

Context-free languages

Product Website Parsing Algorithm Output Languages Grammar / Code Lexer Development Platform IDE License
ACCENT [1] Earley C Mixed External All no GNU GPL
ANTLR [2] LL(*) C#, Java, Python Mixed Generated Java Virtual Machine yes BSD
AnaGram [3] LALR(1) C, C++ Mixed Generated Microsoft Windows ? Proprietary
APaGeD [4] GLR, LALR(1), LL(k) D Mixed Generated All no Artistic
APG [5] Recursive Descent C, C++ Separate None All no GNU GPL
Beaver [6] LALR Java Mixed External Java Virtual Machine no BSD
Bison [7] LALR, GLR C (programming language), C++ Mixed External All no GNU GPL
Bison++ [8] LALR(1) C++ Mixed External POSIX no GNU GPL
Bisonc++ [9] LALR(1) C++ Mixed External POSIX no GNU GPL
BtYacc [10] LALR C++ Mixed External All no Public domain
BYACC [11] LALR C Mixed External All no Public domain
BYACC/J [12] LALR C, Java Mixed External All no Public domain
CL-Yacc [13] LALR(1) Common Lisp Mixed External All no MIT
Coco/R [14] 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
CppCC [15] LL(k) C++ Mixed Generated POSIX no GNU GPL
CSP [16] LR(1) C++ Separate Generated POSIX no Apache License 2.0
CSTools [17] LALR C# Mixed Generated .NET Framework no Proprietary
CUP [18] LALR Java Mixed External Java Virtual Machine no GNU GPL
DMS Software Reengineering Toolkit [19] GLR Parlanse Mixed Generated Microsoft Windows no Proprietary
DParser [20] Scannerless GLR C Mixed Generated POSIX no BSD
Dragon [21] LR(1), LALR C++, Java Separate Generated All no GNU GPL
Elkhound [22] GLR C++, OCaml Mixed External All no BSD
eli [23] LALR C Mixed Generated POSIX no GNU GPL, GNU LGPL
Essence [24] LR Scheme 48 Mixed External All no BSD
eyapp [25] LALR(1) Perl Mixed External All no Perl
Frown [26] LALR(k) Haskell 98 Mixed External All no GNU GPL
GDK [27] LALR(1), GLR C, Lex, Haskell, HTML, Java, Object Pascal, Yacc Mixed Generated POSIX No MIT
GOLD [28] 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 [29] LALR C# Separate External Microsoft Windows yes Freeware
Grammatica [30] LL(k) C#, Java Separate Generated Java Virtual Machine no GNU LGPL
Happy [31] LALR, GLR Haskell Mixed External All no BSD
HiLexed [32] LL(k) Java Separate Internal Java Virtual Machine no GNU LGPL
Hyacc [33] LR(1) C Mixed External All no GNU GPL
jacc [34] LALR Java Mixed External Java Virtual Machine no BSD
JavaCC [35] LL(k) Java Mixed Generated Java Virtual Machine yes BSD
jay [36] LALR C#, Java Mixed None Java Virtual Machine no BSD
JetPAG [37] LL(k) C++ Mixed Generated All no GNU GPL
JS/CC [38] LALR(1) JavaScript, JScript, ECMAScript Mixed Internal All yes Artistic
Kelbt [39] Backtracking LALR(1) C++ Mixed Generated POSIX no GNU GPL
kmyacc [40] LALR(1) C, Java, Perl, JavaScript Mixed External All no GNU GPL
Lapg [41] LALR C, C++, C#, Java, JavaScript Mixed Generated Java Virtual Machine no GNU GPL
LEMON [42] LALR C Mixed External All no Public domain
Lime [43] LALR(1) PHP Mixed External All no GNU GPL
LISA [44] LR, LL, LALR, SLR Java Mixed Generated Java Virtual Machine yes Public Domain
LPG [45] Backtracking LALR(k) Java Mixed Generated Java Virtual Machine no EPL
LLgen [46] LL(1) C Mixed External POSIX no BSD
LLnextgen [47] LL(1) C Mixed External POSIX no GNU GPL
LRGen [48] LR(1) C++ Separate Generated Microsoft Windows no Proprietary
Menhir [49] LR(1) OCaml Mixed Generated All no QPL
Mini Parser Generator [50] ? Python Mixed Generated All no GNU LGPL
ML-Yacc [51] LALR(1) ML Mixed External All no ?
Monkey [52] LR(1) Java Separate Generated Java Virtual Machine no GNU GPL
More Than Parsing [53] LL(1) Java Separate Generated Java Virtual Machine no GNU GPL
MyL Programming Language [54] ? C#, Java, JScript, Object Pascal,SQL Mixed Generated Microsoft Windows no Public domain
ocamlyacc [55] LALR(1) OCaml Mixed External All no QPL
olex [56] LL(1) C++ Mixed Generated All no GNU GPL
Parsec (parser) [57] GLR Haskell Mixed None All no BSD
Parse::Yapp [58] LALR(1) Perl Mixed External All no GNU GPL
Parser Objects ? LL(k) Java Mixed ? Java Virtual Machine no zlib
PLY [59] LALR(1) Python Mixed Generated All no GNU GPL
PRECC [60] LL(k) C Separate Generated MS-DOS, POSIX no GNU GPL
QLALR [61] LALR(1) C++ Mixed External All no GNU GPL
SableCC [62] LALR C, C++, C#, Java, OCaml, Python (programming language) Separate Generated All no GNU LGPL
Scannerless Boolean Parser [63] Scannerless GLR (Boolean Grammars) Java, Haskell Separate Generated All no BSD
SmaCC [64] LALR(1), LR(1) Smalltalk Mixed Internal All yes MIT
SLK [65] LL(k) C, C++, C#, Java Separate External All no Proprietary
SPARK [66] Earley Python Mixed External All no MIT
Spirit [67] LL(k) C++ Mixed Internal All no Boost
Styx [68] ? C Mixed Generated ? All GNU LGPL
Tap [69] LL(1) C++ Mixed Generated All no GNU GPL
TextTransformer [70] LL(k) C++ Mixed Generated Microsoft Windows yes Proprietary
Tom [71] GLR C Generated None All no Proprietary
TinyPG [72] LL(1) C#, Visual Basic ? ? Microsoft Windows yes CPOL 1.0
Toy Parser Generator [73] Recursive Descent Python Mixed Generated All no GNU LGPL
TP Yacc [74] LALR(1) Turbo Pascal Mixed External All yes GNU GPL
UltraGram [75] LALR, LR, GLR C++, C#, Java, Visual Basic .NET Separate Generated Microsoft Windows yes Proprietary
Yacc (AT&T) ? LALR C Mixed External POSIX no Proprietary
Yacc++ [76] LR(k), LALR(k) C++, C# Mixed Generated or External All no Proprietary
Yapps [77] LL(1) Python Mixed Generated All no MIT
yecc [78] LALR(1) Erlang Separate Generated All no Erlang
Visual BNF [79] LR(1), LALR(1) C# Separate Generated .NET Framework yes Proprietary
Visual Parse++ [80] LALR C, C++, C#, Java Separate Generated Microsoft Windows yes Proprietary
YooParse [81] LR C++ Mixed External (YooLex) All no MIT
Wisent [82] LALR(1) C++, Java Mixed External Java Virtual Machine All GNU GPL
Product Website Parsing Algorithm Output Languages Grammar / Code Lexer Development Platform IDE License

Parsing Expression Grammars

Product Website Parsing Algorithm Output Languages Grammar / Code Development Platform License
Aurochs [83] Packrat C, OCaml, Java Mixed All GNU GPL
CL-peg [84] Packrat Common Lisp Mixed All MIT
Drat! [85] Packrat D Mixed All GNU GPL
F# PegParser [86] Packrat F# Mixed .NET Framework Proprietary
Frisby [87] Packrat Haskell Mixed All BSD
grammar::peg [88] Packrat Tcl Mixed All BSD
LPeg [89] Parsing Machine Lua Mixed All MIT
Narwhal [90] Packrat C Mixed POSIX, Microsoft Windows BSD
OMeta [91] ? JavaScript, Squeak Mixed All MIT
NPEG [92] Recursive Descent C# Mixed All MIT
Packrat [93] Packrat Scheme Mixed All MIT
Pappy [94] Packrat Haskell Mixed All Proprietary
parsepp [95] ? C++ Mixed All Public Domain
Parsnip [96] Packrat C++ Mixed Microsoft Windows GNU GPL
peg [97] Recursive Descent C, C++ Mixed All MIT
pegc [98] ? C Mixed All Public Domain
PEGTL [99] Recursive Descent C++0x Mixed POSIX MIT
PGE ? Recursive Descent Parrot bytecode Mixed Parrot virtual machine ?
PyPy rlib [100] Packrat Python Mixed All MIT
Rats! [101] Packrat Java Mixed Java Virtual Machine GNU LGPL
Treetop [102] Recusive Descent Ruby Mixed All ?
Yard [103] Recursive Descent C++ Mixed All MIT or Public Domain

See also