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