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