Name | Parsing algorithm | Input grammar notation | Output languages | Grammar, code | Lexer | Development platform | IDE | License |
ANTLR4 | LL(*) | EBNF | C#, Java, Python, JavaScript | mixed | generated | Java Virtual Machine | Yes | BSD |
ANTLR3 | LL(*) | EBNF | ActionScript, Ada95, C, C++, C#, Java, JavaScript, Objective-C, Perl, Python, Ruby | mixed | generated | Java Virtual Machine | Yes | BSD |
APG | Recursive descent, Backtracking | ABNF | C, C++, JavaScript, Java | separate | none | all | No | GNU GPL |
AXE | Recursive descent | AXE/C++ | C++11 | mixed | none | any platform with standard C++11 compiler | No | Boost |
Beaver | LALR(1) | EBNF | Java | mixed | external | Java Virtual Machine | No | BSD |
Bison | LALR(1), LR(1), IELR(1), GLR | ? | C, C++ | mixed | external | all | No | GNU GPL |
Bison++ | LALR(1) | ? | C++ | mixed | external | POSIX | No | GNU GPL |
Bisonc++ | LALR(1) | ? | C++ | mixed | external | POSIX | No | GNU GPL |
BtYacc | Backtracking Bottom-up | ? | C++ | mixed | external | all | No | Public domain |
byacc | LALR(1) | YACC | C | mixed | external | all | No | Public domain |
BYACC/J | LALR(1) | ? | C, Java | mixed | external | all | No | Public domain |
CL-Yacc | LALR(1) | Lisp | Common Lisp | mixed | external | all | No | MIT |
Coco/R | LL(1) | EBNF | 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 | LALR(1) | Java annotations | Java | mixed | generated | Java Virtual Machine | No | BSD |
CppCC | LL(k) | ? | C++ | mixed | generated | POSIX | No | GNU GPL |
CSP | LR(1) | ? | C++ | separate | generated | POSIX | No | Apache License 2.0 |
CUP | LALR(1) | ? | Java | mixed | external | Java Virtual Machine | No | GNU GPL |
Dragon | LR(1), LALR(1) | ? | C++, Java | separate | generated | all | No | GNU GPL |
eli | LALR(1) | ? | C | mixed | generated | POSIX | No | GNU GPL, GNU LGPL |
Essence | LR(???) | ? | Scheme 48 | mixed | external | all | No | BSD |
Eto.Parse | LL(k) | BNF, EBNF or C# | N/A (state machine is runtime generated) | separate | internal | .NET Framework | No | MIT |
eyapp | LALR(1) | ? | Perl | mixed | external or generated | all | No | Perl |
Frown | LALR(k) | ? | Haskell 98 | mixed | external | all | No | GNU GPL |
geyacc | LALR(1) | ? | Eiffel | mixed | external | all | No | MIT |
GOLD | 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 | LALR(1) | YACC | C# | separate | external | Microsoft Windows | Yes | BSD |
Grammatica | LL(k) | BNF dialect | C#, Java | separate | generated | Java Virtual Machine | No | GNU LGPL |
HiLexed | LL(*) | EBNF or Java | Java | separate | internal | Java Virtual Machine | No | GNU LGPL |
Hime Parser Generator | LR(1), LALR(1), LR(0) | BNF dialect | C#, Java | separate | generated | .NET Framework, Java Virtual Machine | No | GNU LGPL |
Hyacc | LR(1), LALR(1), LR(0) | YACC | C | mixed | external | all | No | GNU GPL |
Irony | LALR(1) | C# | N/A (state machine is runtime generated) | separate | internal | .NET Framework | Yes | MIT |
iyacc | LALR(1) | YACC | Icon | mixed | external | all | No | GNU GPL |
jacc | LALR(1) | ? | Java | mixed | external | Java Virtual Machine | No | BSD |
JavaCC | LL(k) | EBNF | Java, C++, JavaScript (via GWT compiler)[1] | mixed | generated | Java Virtual Machine | Yes | BSD |
jay | LALR(1) | YACC | C#, Java | mixed | none | Java Virtual Machine | No | BSD |
JFLAP | LL(1), LALR(1) | ? | Java | ? | ? | Java Virtual Machine | Yes | ? |
JetPAG | LL(k) | ? | C++ | mixed | generated | all | No | GNU GPL |
JS/CC | LALR(1) | EBNF | JavaScript, JScript, ECMAScript | mixed | internal | all | Yes | Artistic |
KDevelop-PG-Qt | LL(1), Backtracking, Shunting yard | ? | C++ | mixed | generated or external | all, KDE | No | GNU LGPL |
Kelbt | Backtracking LALR(1) | ? | C++ | mixed | generated | POSIX | No | GNU GPL |
kmyacc | LALR(1) | ? | C, Java, Perl, JavaScript | mixed | external | all | No | GNU GPL |
Lapg | LALR(1) | ? | C, C++, C#, Java, JavaScript | mixed | generated | Java Virtual Machine | No | GNU GPL |
Lemon | LALR(1) | ? | C | mixed | external | all | No | Public domain |
LEPL | Recursive descent | Python | Python (no generation, library) | separate | none | all | No | MPL/GNU LGPL |
Lime | LALR(1) | ? | PHP | mixed | external | all | No | GNU GPL |
LISA | LR(?), LL(?), LALR(?), SLR(?) | ? | Java | mixed | generated | Java Virtual Machine | Yes | Public domain |
LLgen | LL(1) | ? | C | mixed | external | POSIX | No | BSD |
LLnextgen | LL(1) | ? | C | mixed | external | all | No | GNU GPL |
LLLPG | LL(k) + syntactic and semantic predicates | ANTLR-like | C# | mixed | generated (?) | .NET Framework, Mono | Visual Studio | GNU LGPL |
LPG | Backtracking LALR(k) | ? | Java | mixed | generated | Java Virtual Machine | No | EPL |
Menhir | LR(1) | ? | OCaml | mixed | generated | all | No | QPL |
ML-Yacc | LALR(1) | ? | ML | mixed | external | all | No | ? |
Monkey | LR(1) | ? | Java | separate | generated | Java Virtual Machine | No | GNU GPL |
Msta | LALR(k), LR(k) | YACC, EBNF | C, C++ | mixed | external or generated | POSIX, Cygwin | No | GNU GPL |
MTP (More Than Parsing) | LL(1) | ? | Java | separate | generated | Java Virtual Machine | No | GNU GPL |
MyParser | LL(*) | Markdown | C++11 | separate | internal | any platform with standard C++11 compiler | No | MIT License |
NLT | GLR | C#/BNF-like | C# | mixed | mixed | .NET Framework | No | MIT |
ocamlyacc | LALR(1) | ? | OCaml | mixed | external | all | No | QPL |
olex | LL(1) | ? | C++ | mixed | generated | all | No | GNU GPL |
Parsec | LL, Backtracking | ? | Haskell | mixed | none | all | No | BSD |
Parse::Yapp | LALR(1) | ? | Perl | mixed | external | all | No | GNU GPL |
Parser Objects | LL(k) | ? | Java | mixed | ? | Java Virtual Machine | No | zlib |
PCCTS | LL | ? | C, C++ | ? | ? | all | No | ? |
PLY | LALR(1) | BNF | Python | mixed | generated | all | No | MIT License |
PlyPlus | LALR(1) | EBNF | Python | separate | generated | all | No | MIT License |
PRECC | LL(k) | ? | C | separate | generated | DOS, POSIX | No | GNU GPL |
QLALR | LALR(1) | ? | C++ | mixed | external | all | No | GNU GPL |
RPATK | Recursive descent, Backtracking | BNF | C (no generation, library) | separate | none | all | No | GNU GPL |
SableCC | LALR(1) | ? | C, C++, C#, Java, OCaml, Python | separate | generated | all | No | GNU LGPL |
SLK | LL(k) LR(k) LALR(k) | EBNF | C, C++, C#, Java, JavaScript | separate | external | all | No | Proprietary |
SP (Simple Parser) | Recursive descent | Python | Python | separate | generated | all | No | GNU LGPL |
Spirit | Recursive descent | ? | C++ | mixed | internal | all | No | Boost |
Sprache | LL, Backtracking | C# | interpreted | mixed | internal | .NET Framework | No | MIT |
Styx | LALR(1) | ? | C, C++ | separate | generated | all | No | GNU LGPL |
Sweet Parser | LALR(1) | ? | C++ | separate | generated | Microsoft Windows | No | zlib |
Tap | LL(1) | ? | C++ | mixed | generated | all | No | GNU GPL |
TextTransformer | LL(k) | ? | C++ | mixed | generated | Microsoft Windows | Yes | Proprietary |
TinyPG | LL(1) | ? | C#, Visual Basic | ? | ? | Microsoft Windows | Yes | CPOL 1.0 |
Toy Parser Generator | Recursive descent | ? | Python | mixed | generated | all | No | GNU LGPL |
TP Yacc | LALR(1) | ? | Turbo Pascal | mixed | external | all | Yes | GNU GPL |
UniCC | LALR(1) | EBNF | C, target-language independent | mixed | generated | POSIX | No | Artistic 2.0 |
Whale | LR(?), some conjunctive stuff, see Whale Calf | ? | C++ | mixed | external | all | No | Proprietary |
wisent | LALR(1) | ? | C++, Java | mixed | external | all | No | GNU GPL |
Yacc AT&T/Sun | LALR(1) | YACC | C | mixed | external | POSIX | No | CPL & CDDL |
Yacc++ | LR(1), LALR(1) | YACC | C++, C# | mixed | generated or external | all | No | Proprietary |
Yapps | LL(1) | ? | Python | mixed | generated | all | No | MIT |
yecc | LALR(1) | ? | Erlang | separate | generated | all | No | Erlang |
Visual BNF | LR(1), LALR(1) | ? | C# | separate | generated | .NET Framework | Yes | Proprietary |
YooParse | LR(1), LALR(1) | ? | C++ | mixed | external | all | No | MIT |
Parse | LR(1) | BNF in C++ types | ? | ? | none | C++11 compliant compiler | No | MIT |
Product | Parsing algorithm | Input grammar notation | Output languages | Grammar, code | Lexer | Development platform | IDE | License |