Name |
Website |
Parsing algorithm |
Input grammar notation |
Output languages |
Grammar, code |
Lexer |
Development platform |
IDE |
License |
ANTLR |
[18] |
LL(*) |
EBNF |
ActionScript, Ada95, C, C++, C#, Java, JavaScript, Objective-C, Perl, Python, Ruby |
mixed |
generated |
Java Virtual Machine |
Yes |
BSD |
APG |
[19] |
Recursive descent, Backtracking |
ABNF |
C, C++, JavaScript, Java |
separate |
none |
all |
No |
GNU GPL |
AXE |
[20] |
Recursive descent |
AXE/C++ |
C++11 |
mixed |
none |
any platform with standard C++11 compiler |
No |
Boost |
Beaver |
[21] |
LALR(1) |
? |
Java |
mixed |
external |
Java Virtual Machine |
No |
BSD |
Bison++ |
[22] |
LALR(1) |
? |
C++ |
mixed |
external |
POSIX |
No |
GNU GPL |
Bisonc++ |
[23] |
LALR(1) |
? |
C++ |
mixed |
external |
POSIX |
No |
GNU GPL |
BtYacc |
[24] |
Backtracking Bottom-up |
? |
C++ |
mixed |
external |
all |
No |
Public domain |
byacc |
[25] |
LALR(1) |
YACC |
C |
mixed |
external |
all |
No |
Public domain |
BYACC/J |
[26] |
LALR(1) |
? |
C, Java |
mixed |
external |
all |
No |
Public domain |
CL-Yacc |
[27] |
LALR(1) |
? |
Common Lisp |
mixed |
external |
all |
No |
MIT |
Coco/R |
[28] |
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 |
[29] |
LALR(1) |
? |
Java |
mixed |
generated |
Java Virtual Machine |
No |
BSD |
CppCC |
[30] |
LL(k) |
? |
C++ |
mixed |
generated |
POSIX |
No |
GNU GPL |
CSP |
[31] |
LR(1) |
? |
C++ |
separate |
generated |
POSIX |
No |
Apache License 2.0 |
CSTools |
[32] |
LALR(1) |
? |
C# |
mixed |
generated |
.NET Framework |
No |
Proprietary |
CUP |
[33] |
LALR(1) |
? |
Java |
mixed |
external |
Java Virtual Machine |
No |
GNU GPL |
Dragon |
[34] |
LR(1), LALR(1) |
? |
C++, Java |
separate |
generated |
all |
No |
GNU GPL |
eli |
[35] |
LALR(1) |
? |
C |
mixed |
generated |
POSIX |
No |
GNU GPL, GNU LGPL |
Essence |
[36] |
LR(???) |
? |
Scheme 48 |
mixed |
external |
all |
No |
BSD |
eyapp |
[37] |
LALR(1) |
? |
Perl |
mixed |
external or generated |
all |
No |
Perl |
Frown |
[38] |
LALR(k) |
? |
Haskell 98 |
mixed |
external |
all |
No |
GNU GPL |
geyacc |
[39] |
LALR(1) |
? |
Eiffel |
mixed |
external |
all |
No |
MIT |
GOLD |
[40] |
LALR(1) |
BNF |
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 |
Modified Zlib |
GPPG |
[41] |
LALR(1) |
YACC |
C# |
separate |
external |
Microsoft Windows |
Yes |
BSD |
Grammatica |
[42] |
LL(k) |
BNF dialect |
C#, Java |
separate |
generated |
Java Virtual Machine |
No |
GNU LGPL |
HiLexed |
[43] |
LL(*) |
EBNF or Java |
Java |
separate |
internal |
Java Virtual Machine |
No |
GNU LGPL |
Hime Parser Generator |
[44] |
LR(1), LALR(1), LR(0), LR(*) |
? |
C# |
separate |
generated |
.NET Framework |
No |
GNU LGPL |
Hyacc |
[45] |
LR(1), LALR(1), LR(0) |
YACC |
C |
mixed |
external |
all |
No |
GNU GPL |
jacc |
[46] |
LALR(1) |
? |
Java |
mixed |
external |
Java Virtual Machine |
No |
BSD |
JavaCC |
[47] |
LL(k) |
? |
Java |
mixed |
generated |
Java Virtual Machine |
Yes |
BSD |
jay |
[48] |
LALR(1) |
YACC |
C#, Java |
mixed |
none |
Java Virtual Machine |
No |
BSD |
JFLAP |
[49] |
LL(1), LALR(1) |
? |
Java |
? |
? |
Java Virtual Machine |
Yes |
? |
JetPAG |
[50] |
LL(k) |
? |
C++ |
mixed |
generated |
all |
No |
GNU GPL |
JS/CC |
[51] |
LALR(1) |
EBNF |
JavaScript, JScript, ECMAScript |
mixed |
internal |
all |
Yes |
Artistic |
KDevelop-PG-Qt |
[52] |
LL(1), Backtracking, Shunting yard |
? |
C++ |
mixed |
generated or external |
all, KDE |
No |
GNU LGPL |
Kelbt |
[53] |
Backtracking LALR(1) |
? |
C++ |
mixed |
generated |
POSIX |
No |
GNU GPL |
kmyacc |
[54] |
LALR(1) |
? |
C, Java, Perl, JavaScript |
mixed |
external |
all |
No |
GNU GPL |
Lapg |
[55] |
LALR(1) |
? |
C, C++, C#, Java, JavaScript |
mixed |
generated |
Java Virtual Machine |
No |
GNU GPL |
Lemon |
[56] |
LALR(1) |
? |
C |
mixed |
external |
all |
No |
Public domain |
LEPL |
[57] |
Recursive descent |
Python |
Python (no generation, library) |
separate |
none |
all |
No |
MPL/GNU LGPL |
Lime |
[58] |
LALR(1) |
? |
PHP |
mixed |
external |
all |
No |
GNU GPL |
LISA |
[59] |
LR(?), LL(?), LALR(?), SLR(?) |
? |
Java |
mixed |
generated |
Java Virtual Machine |
Yes |
Public domain |
LPG |
[60] |
Backtracking LALR(k) |
? |
Java |
mixed |
generated |
Java Virtual Machine |
No |
EPL |
LLgen |
[61] |
LL(1) |
? |
C |
mixed |
external |
POSIX |
No |
BSD |
LLnextgen |
[62] |
LL(1) |
? |
C |
mixed |
external |
POSIX |
No |
GNU GPL |
LRSTAR |
[63] |
LALR(1), LALR(k) |
TBNF |
C++, Visual C++ |
separate |
Includes DFASTAR |
Microsoft Windows |
Microsoft Visual Studio |
proprietary |
Menhir |
[64] |
LR(1) |
? |
Objective Caml |
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 |
Msta |
[69] |
LALR(k), LR(k) |
YACC, EBNF |
C, C++ |
mixed |
external or generated |
POSIX, Cygwin |
No |
GNU GPL |
ocamlyacc |
[70] |
LALR(1) |
? |
Objective Caml |
mixed |
external |
all |
No |
QPL |
olex |
[71] |
LL(1) |
? |
C++ |
mixed |
generated |
all |
No |
GNU GPL |
Parsec |
[72] |
LL, Backtracking |
? |
Haskell |
mixed |
none |
all |
No |
BSD |
Parse::Yapp |
[73] |
LALR(1) |
? |
Perl |
mixed |
external |
all |
No |
GNU GPL |
Parser Objects |
? |
LL(k) |
? |
Java |
mixed |
? |
Java Virtual Machine |
No |
zlib |
PCCTS |
[74] |
LL |
? |
C, C++ |
? |
? |
all |
No |
? |
PLY |
[75] |
LALR(1) |
? |
Python |
mixed |
generated |
all |
No |
MIT License |
PRECC |
[76] |
LL(k) |
? |
C |
separate |
generated |
DOS, POSIX |
No |
GNU GPL |
QLALR |
[77] |
LALR(1) |
? |
C++ |
mixed |
external |
all |
No |
GNU GPL |
RPATK |
[78] |
Recursive descent, Backtracking |
BNF |
C (no generation, library) |
separate |
none |
all |
No |
GNU GPL |
SableCC |
[79] |
LALR(1) |
? |
C, C++, C#, Java, Objective Caml, Python |
separate |
generated |
all |
No |
GNU LGPL |
Simple Parser |
[80] |
Recursive descent |
Python |
Python |
separate |
generated |
all |
No |
GNU LGPL |
SLK |
[81] |
LL(k) |
? |
C, C++, C#, Java |
separate |
external |
all |
No |
Proprietary |
Spirit |
[82] |
Recursive descent |
? |
C++ |
mixed |
internal |
all |
No |
Boost |
Styx |
[83] |
LALR(1) |
? |
C, C++ |
separate |
generated |
all |
No |
GNU LGPL |
Sweet Parser |
[84] |
LALR(1) |
? |
C++ |
separate |
generated |
Microsoft Windows |
No |
zlib |
Tap |
[85] |
LL(1) |
? |
C++ |
mixed |
generated |
all |
No |
GNU GPL |
TextTransformer |
[86] |
LL(k) |
? |
C++ |
mixed |
generated |
Microsoft Windows |
Yes |
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 |
UniCC |
[90] |
LALR(1) |
EBNF |
C, target-language independent |
mixed |
generated |
POSIX |
No |
Artistic 2.0 |
Whale |
[91] |
LR(?), some conjunctive stuff, see Whale Calf |
? |
C++ |
mixed |
external |
all |
No |
Proprietary |
Wisent |
[92] |
LALR(1) |
? |
C++, Java |
mixed |
external |
Java Virtual Machine |
No |
GNU GPL |
Yacc (AT&T)/Sun |
[93]/[94] |
LALR(1) |
YACC |
C |
mixed |
external |
POSIX |
No |
CPL & CDDL |
Yacc++ |
[95] |
LR(1), LALR(1) |
YACC |
C++, C# |
mixed |
generated or external |
all |
No |
Proprietary |
Yapps |
[96] |
LL(1) |
? |
Python |
mixed |
generated |
all |
No |
MIT |
yecc |
[97] |
LALR(1) |
? |
Erlang |
separate |
generated |
all |
No |
Erlang |
VisualLangLab |
[98] |
LL(*) |
visual tree (JTree) |
All JVM Languages, though Scala is particularly well supported because of its pattern matching capabilities |
mixed |
generated |
Scala |
Yes |
GNU GPL |
Visual BNF |
[99] |
LR(1), LALR(1) |
? |
C# |
separate |
generated |
.NET Framework |
Yes |
Proprietary |
Visual Parse++ |
[100] |
LALR(???) |
? |
C, C++, C#, Java |
separate |
generated |
Microsoft Windows |
Yes |
Proprietary |
YooParse |
[101] |
LR(1), LALR(1) |
? |
C++ |
mixed |
external |
all |
No |
MIT |
Product |
Website |
Parsing algorithm |
Input grammar notation |
Output languages |
Grammar, code |
Lexer |
Development platform |
IDE |
License |