Jump to content

Comparison of parser generators: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Hyperyl (talk | contribs)
remove Latest Release column
Line 28: Line 28:
| valign="top" |'''License'''
| valign="top" |'''License'''
| This column indicates the type [[Software license|end-user license]] offered by the author of the product.
| This column indicates the type [[Software license|end-user license]] offered by the author of the product.
|-
| valign="top" |'''Latest Release'''
| This column indicates the year of the latest (in some cases last) release. This column was introduced in 2008 so wherever it reads "2008" when youn com here in say 2010 has to be re-checked.
|}
|}


==Comparison Charts==
==Comparison Charts==
{| class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto;"
{| class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto;"
! Product !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! [[Lexical analyzer|Lexer]] !! Development Platform !! [[Integrated Development Environment|IDE]] !! [[Software license|License]] !! Latest release
! Product !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! [[Lexical analyzer|Lexer]] !! Development Platform !! [[Integrated Development Environment|IDE]] !! [[Software license|License]]
|-
|-
| [[ACCENT]] || [http://accent.compilertools.net/] || [[Earley parser|Earley]] || [[C (programming language)|C]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]] || 2006
| [[ACCENT]] || [http://accent.compilertools.net/] || [[Earley parser|Earley]] || [[C (programming language)|C]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[ANTLR]] || [http://antlr.org/] || [[LL parser|LL(*)]] || [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Python (programming language)|Python]] || Mixed || Generated || [[Java Virtual Machine|JVM]] || yes || [[BSD licenses|BSD]] || ?
| [[ANTLR]] || [http://antlr.org/] || [[LL parser|LL(*)]] || [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Python (programming language)|Python]] || Mixed || Generated || [[Java Virtual Machine|JVM]] || yes || [[BSD licenses|BSD]]
|-
|-
| [[AnaGram]] || [http://www.parsifalsoft.com/] || [[LALR parser|LALR(1)]] || C, C++ || Mixed || Generated || Win32 || ? || [[Proprietary software|Proprietary]] || ?
| [[AnaGram]] || [http://www.parsifalsoft.com/] || [[LALR parser|LALR(1)]] || C, C++ || Mixed || Generated || Win32 || ? || [[Proprietary software|Proprietary]]
|-
|-
| [[APaGeD]] || [http://apaged.mainia.de/] || [[GLR parser|GLR]], [[LALR parser|LALR(1)]], [[LL parser|LL(k)]] || [[D (programming language)|D]] || Mixed || Generated || All || no || [[Artistic license|Artistic]] || ?
| [[APaGeD]] || [http://apaged.mainia.de/] || [[GLR parser|GLR]], [[LALR parser|LALR(1)]], [[LL parser|LL(k)]] || [[D (programming language)|D]] || Mixed || Generated || All || no || [[Artistic license|Artistic]]
|-
|-
| [[APG (parser generator)|APG]] || [http://coasttocoastresearch.com/] || [[Recursive descent parser|Recursive Descent]] || C, C++ || Separate || None || All || no || [[GNU General Public License|GNU GPL]] || 2007
| [[APG (parser generator)|APG]] || [http://coasttocoastresearch.com/] || [[Recursive descent parser|Recursive Descent]] || C, C++ || Separate || None || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Aurochs (parser generator)|Aurochs]] || [http://aurochs.fr] || [[Packrat parser|Packrat]] || C, [[Ocaml]], Java || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[Aurochs (parser generator)|Aurochs]] || [http://aurochs.fr] || [[Packrat parser|Packrat]] || C, [[Ocaml]], Java || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Beaver (parser generator)|Beaver]] || [http://beaver.sourceforge.net/] || LALR || Java || Mixed || External || JVM || no || [[BSD licenses|BSD]] || ?
| [[Beaver (parser generator)|Beaver]] || [http://beaver.sourceforge.net/] || LALR || Java || Mixed || External || JVM || no || [[BSD licenses|BSD]]
|-
|-
| [[GNU bison|Bison]] || [http://gnu.org/software/bison/] || [[LALR]], [[GLR]] || C, C++ || Mixed || External || All || no || [[GNU General Public License|GNU GPL]] || 2008
| [[GNU bison|Bison]] || [http://gnu.org/software/bison/] || [[LALR]], [[GLR]] || C, C++ || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Bison++]] || [ftp://ftp.iecc.com/pub/file/bison++flex++/] || [[LALR(1)]] || [[C++]] || Mixed || External || POSIX || No || [[GNU General Public License|GNU GPL]] || 1993
| [[Bison++]] || [ftp://ftp.iecc.com/pub/file/bison++flex++/] || [[LALR(1)]] || [[C++]] || Mixed || External || POSIX || No || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Bisonc++]] || [http://bisoncpp.sourceforge.net/] || [[LALR(1)]] || [[C++]] || Mixed || External || POSIX || No || [[GNU General Public License|GNU GPL]] || 2008
| [[Bisonc++]] || [http://bisoncpp.sourceforge.net/] || [[LALR(1)]] || [[C++]] || Mixed || External || POSIX || No || [[GNU General Public License|GNU GPL]]
|-
|-
| [[BtYacc]] || [http://siber.com/btyacc/] || LALR || C++ || Mixed || External || All || no || [[Public domain]] || 1999
| [[BtYacc]] || [http://siber.com/btyacc/] || LALR || C++ || Mixed || External || All || no || [[Public domain]]
|-
|-
| [[Berkeley Yacc|BYACC]] || [http://invisible-island.net/byacc/byacc.html] || LALR || C || Mixed || External || All || no || [[Public domain]] || ?
| [[Berkeley Yacc|BYACC]] || [http://invisible-island.net/byacc/byacc.html] || LALR || C || Mixed || External || All || no || [[Public domain]]
|-
|-
| [[BYACC/J]] || [http://byaccj.sourceforge.net/] || LALR || C, Java || Mixed || External (JFlex) || All || no || [[Public domain]] || ?
| [[BYACC/J]] || [http://byaccj.sourceforge.net/] || LALR || C, Java || Mixed || External (JFlex) || All || no || [[Public domain]]
|-
|-
| [[CL-peg]] || [http://common-lisp.net/project/cl-peg/] || Packrat || [[Common Lisp]] || Mixed || Generated || All || no || [[MIT license|MIT]] || ?
| [[CL-peg]] || [http://common-lisp.net/project/cl-peg/] || Packrat || [[Common Lisp]] || Mixed || Generated || All || no || [[MIT license|MIT]]
|-
|-
| [[CL-Yacc]] || [http://www.pps.jussieu.fr/~jch/software/cl-yacc/] || LALR(1) || Common Lisp || Mixed || External || All || no || [[MIT license|MIT]] || ?
| [[CL-Yacc]] || [http://www.pps.jussieu.fr/~jch/software/cl-yacc/] || LALR(1) || Common Lisp || Mixed || External || All || no || [[MIT license|MIT]]
|-
|-
| [[Coco/R]] || [http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/] || LL(k) || C, C++, C#, [[F Sharp (programming language)|F#]], Java, [[Ada (programming language)|Ada]], [[Pascal (programming language)|Pascal]], [[Modula-2]], [[Oberon (programming language)|Oberon]], [[Ruby (programming language)|Ruby]], [[Unicon (programming language)|Unicon]], [[Visual Basic .NET]] || Mixed || Generated || JVM, [[.NET Framework|.NET]] || no || [[GNU General Public License|GNU GPL]] || 2008
| [[Coco/R]] || [http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/] || LL(k) || C, C++, C#, [[F Sharp (programming language)|F#]], Java, [[Ada (programming language)|Ada]], [[Pascal (programming language)|Pascal]], [[Modula-2]], [[Oberon (programming language)|Oberon]], [[Ruby (programming language)|Ruby]], [[Unicon (programming language)|Unicon]], [[Visual Basic .NET]] || Mixed || Generated || JVM, [[.NET Framework|.NET]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[CppCC]] || [http://cppcc.sourceforge.net/] || LL(k) || C++ || Mixed || Generated || [[POSIX]] || no || [[GNU General Public License|GNU GPL]] || 2004
| [[CppCC]] || [http://cppcc.sourceforge.net/] || LL(k) || C++ || Mixed || Generated || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[CSP]] || [http://csparser.sourceforge.net/] || [[LR(1)]] || [[C++]] || Separate || Generated || POSIX || no || [[Apache License|Apache License V2.0]] || 2007
| [[CSP]] || [http://csparser.sourceforge.net/] || [[LR(1)]] || [[C++]] || Separate || Generated || POSIX || no || [[Apache License|Apache License V2.0]]
|-
|-
| [[CSTools]] || [http://cis.paisley.ac.uk/crow-ci0/] || LALR || C# || Mixed || Generated || .NET || no || ? || ?
| [[CSTools]] || [http://cis.paisley.ac.uk/crow-ci0/] || LALR || C# || Mixed || Generated || .NET || no || ?
|-
|-
| [[CUP (parser generator)|CUP]] || [http://www.cs.princeton.edu/~appel/modern/java/CUP/] || LALR || Java || Mixed || External ([[JLex]]) || JVM || no || [[GNU General Public License|GNU GPL]] || ?
| [[CUP (parser generator)|CUP]] || [http://www.cs.princeton.edu/~appel/modern/java/CUP/] || LALR || Java || Mixed || External ([[JLex]]) || JVM || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[DMS Software Reengineering Toolkit]] || [http://semanticdesigns.com/Products/DMS/DMSToolkit.html] || GLR || Parlanse || Mixed || Generated || [[Windows API|Win32]] || no || [[Proprietary software|Proprietary]] || ?
| [[DMS Software Reengineering Toolkit]] || [http://semanticdesigns.com/Products/DMS/DMSToolkit.html] || GLR || Parlanse || Mixed || Generated || [[Windows API|Win32]] || no || [[Proprietary software|Proprietary]]
|-
|-
| [[DParser]] || [http://dparser.sourceforge.net/] || [[Scannerless parsing|Scannerless GLR]] || C || Mixed || Generated || POSIX || no || [[BSD licenses|BSD]] || ?
| [[DParser]] || [http://dparser.sourceforge.net/] || [[Scannerless parsing|Scannerless GLR]] || C || Mixed || Generated || POSIX || no || [[BSD licenses|BSD]]
|-
|-
| [[Dragon]] || [http://www.lemke-it.com/] || [[LR(1)]], [[LALR]] || [[C++]], [[Java (programming language)|Java]] || Separate || Generated || All || no || [[GNU General Public License|GNU GPL]] || 2007
| [[Dragon]] || [http://www.lemke-it.com/] || [[LR(1)]], [[LALR]] || [[C++]], [[Java (programming language)|Java]] || Separate || Generated || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Drat!]] || [http://wiki.dprogramming.com/Drat/HomePage/] || Packrat || D || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[Drat!]] || [http://wiki.dprogramming.com/Drat/HomePage/] || Packrat || D || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Elkhound (parser generator)|Elkhound]] || [http://cs.berkeley.edu/~smcpeak/elkhound/] || GLR || C++, [[Objective Caml|OCaml]] || Mixed || External || All || no || [[BSD licenses|BSD]] || 2005
| [[Elkhound (parser generator)|Elkhound]] || [http://cs.berkeley.edu/~smcpeak/elkhound/] || GLR || C++, [[Objective Caml|OCaml]] || Mixed || External || All || no || [[BSD licenses|BSD]]
|-
|-
| [[eli (parser generator)|eli]] || [http://eli-project.sourceforge.net/] || LALR || C, others || Mixed || Generated || POSIX || no || [[GNU General Public License|GNU GPL]], [[GNU Lesser General Public License|GNU LGPL]] || ?
| [[eli (parser generator)|eli]] || [http://eli-project.sourceforge.net/] || LALR || C, others || Mixed || Generated || POSIX || no || [[GNU General Public License|GNU GPL]], [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[Essence (software)|Essence]] || [http://www.informatik.uni-freiburg.de/proglang/software/essence/] || LR || Scheme ([[Scheme 48]]) || Mixed || External || All || no || [[BSD licenses|BSD]] || ?
| [[Essence (software)|Essence]] || [http://www.informatik.uni-freiburg.de/proglang/software/essence/] || LR || Scheme ([[Scheme 48]]) || Mixed || External || All || no || [[BSD licenses|BSD]]
|-
|-
| [[eyapp]] || [http://search.cpan.org/~casiano/Parse-Eyapp/] || LALR(1) || [[Perl]] || Mixed || External || All || no || [[Perl]] || ?
| [[eyapp]] || [http://search.cpan.org/~casiano/Parse-Eyapp/] || LALR(1) || [[Perl]] || Mixed || External || All || no || [[Perl]]
|-
|-
| [[F Sharp PegParser|F# PegParser]] || [http://devhawk.net/2007/12/10/Practical+Parsing+In+F.aspx] || Packrat || F# || Mixed || Generated || .NET || no || ? || ?
| [[F Sharp PegParser|F# PegParser]] || [http://devhawk.net/2007/12/10/Practical+Parsing+In+F.aspx] || Packrat || F# || Mixed || Generated || .NET || no || ?
|-
|-
| [[Frisby (library)|Frisby]] || [http://repetae.net/computer/frisby/] || Packrat || [[Haskell (programming language)|Haskell]] || Mixed || Generated || All || no || [[BSD licenses|BSD]] || ?
| [[Frisby (library)|Frisby]] || [http://repetae.net/computer/frisby/] || Packrat || [[Haskell (programming language)|Haskell]] || Mixed || Generated || All || no || [[BSD licenses|BSD]]
|-
|-
| [[Frown]] || [http://www.informatik.uni-bonn.de/~ralf/frown/] || [[LALR(k)]] || [[Haskell|Haskell 98]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[Frown]] || [http://www.informatik.uni-bonn.de/~ralf/frown/] || [[LALR(k)]] || [[Haskell|Haskell 98]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
<!-- there are more parsing algorithms and output formats supported, see http://gdk.sourceforge.net/gdkref.pdf -->
<!-- there are more parsing algorithms and output formats supported, see http://gdk.sourceforge.net/gdkref.pdf -->
| [[Grammar Deployment Kit|GDK]] || [http://sourceforge.net/projects/gdk] || LALR(1), GLR || C, Delphi, Lex, Haskell, HTML, Java, Yacc || Mixed || Generated || POSIX || No || [[MIT license|MIT]] || 2003
| [[Grammar Deployment Kit|GDK]] || [http://sourceforge.net/projects/gdk] || LALR(1), GLR || C, Delphi, Lex, Haskell, HTML, Java, Yacc || Mixed || Generated || POSIX || No || [[MIT license|MIT]]
|-
|-
| [[GOLD (parser)|GOLD]] || [http://devincook.com/goldparser/] || LALR || [[x86 assembly language]], [[ANSI C]], C#, D, [[Borland Delphi|Delphi]], Java, Pascal, Python, [[Visual Basic|Visual Basic 6]], Visual Basic .NET, [[Visual C++]] || Separate || Generated || Win32 || yes || [[Freeware]] || ?
| [[GOLD (parser)|GOLD]] || [http://devincook.com/goldparser/] || LALR || [[x86 assembly language]], [[ANSI C]], C#, D, [[Borland Delphi|Delphi]], Java, Pascal, Python, [[Visual Basic|Visual Basic 6]], Visual Basic .NET, [[Visual C++]] || Separate || Generated || Win32 || yes || [[Freeware]]
|-
|-
| [[tcllib|grammar::peg]] || [http://tcllib.sourceforge.net/doc/peg.html] || Packrat || [[TCL]] || Mixed || Generated || All || no || [[BSD licenses|BSD]] || ?
| [[tcllib|grammar::peg]] || [http://tcllib.sourceforge.net/doc/peg.html] || Packrat || [[TCL]] || Mixed || Generated || All || no || [[BSD licenses|BSD]]
|-
|-
| [[Grammatica]] || [http://grammatica.percederberg.net/] || LL(k) || C#, Java || Separate || Generated || JVM || no || [[GNU Lesser General Public License|GNU LGPL]] || ?
| [[Grammatica]] || [http://grammatica.percederberg.net/] || LL(k) || C#, Java || Separate || Generated || JVM || no || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[Happy (Parser)|Happy]] || [http://www.haskell.org/happy/] || LALR, GLR || Haskell || Mixed || External || All || no || [[BSD licenses|BSD]] || ?
| [[Happy (Parser)|Happy]] || [http://www.haskell.org/happy/] || LALR, GLR || Haskell || Mixed || External || All || no || [[BSD licenses|BSD]]
|-
|-
| [[HiLexed]] || [http://www.hilexed.org/] || LL(k) || Java || Separate || Internal || JVM || no || [[GNU Lesser General Public Licence|GNU LGPL]] || ?
| [[HiLexed]] || [http://www.hilexed.org/] || LL(k) || Java || Separate || Internal || JVM || no || [[GNU Lesser General Public Licence|GNU LGPL]]
|-
|-
| [[Hyacc]] || [http://hyacc.sourceforge.net/] || LR(1) || [[C (programming language)|C]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[Hyacc]] || [http://hyacc.sourceforge.net/] || LR(1) || [[C (programming language)|C]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[jacc]] || [http://web.cecs.pdx.edu/~mpj/jacc/index.html] || LALR || Java || Mixed || External || JVM || no || [[BSD licenses|BSD]] || ?
| [[jacc]] || [http://web.cecs.pdx.edu/~mpj/jacc/index.html] || LALR || Java || Mixed || External || JVM || no || [[BSD licenses|BSD]]
|-
|-
| [[JavaCC]] || [https://javacc.dev.java.net/] || LL(k) || Java || Mixed || Generated || JVM || yes || [[BSD licenses|BSD]] || ?
| [[JavaCC]] || [https://javacc.dev.java.net/] || LL(k) || Java || Mixed || Generated || JVM || yes || [[BSD licenses|BSD]]
|-
|-
| [[jay (parser generator)|jay]] || [http://www.cs.rit.edu/~ats/projects/lp/doc/jay/package-summary.html] || LALR || C#, Java || Mixed || None || All || no || [[BSD licenses|BSD]] || ?
| [[jay (parser generator)|jay]] || [http://www.cs.rit.edu/~ats/projects/lp/doc/jay/package-summary.html] || LALR || C#, Java || Mixed || None || All || no || [[BSD licenses|BSD]]
|-
|-
| [[JetPAG]] || [http://jetpag.sourceforge.net/] || LL(k) || C++ || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]] || 2007
| [[JetPAG]] || [http://jetpag.sourceforge.net/] || LL(k) || C++ || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[JS/CC]] || [http://jscc.jmksf.com/] || LALR(1) || [[JavaScript]], [[JScript]], [[ECMAScript]] || Mixed || Internal || All || yes || [[Artistic license|Artistic]] || ?
| [[JS/CC]] || [http://jscc.jmksf.com/] || LALR(1) || [[JavaScript]], [[JScript]], [[ECMAScript]] || Mixed || Internal || All || yes || [[Artistic license|Artistic]]
|-
|-
| [[Kelbt]] || [http://research.cs.queensu.ca/~thurston/kelbt/] || [[Backtracking]] [[LALR(1)]] || C++ || Mixed || Generated || POSIX || no || [[GNU General Public License|GNU GPL]] || 2007
| [[Kelbt]] || [http://research.cs.queensu.ca/~thurston/kelbt/] || [[Backtracking]] [[LALR(1)]] || C++ || Mixed || Generated || POSIX || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[kmyacc]] || [http://www005.upp.so-net.ne.jp/kmori/kmyacc/] || LALR(1) || C, Java, Perl, JavaScript || Mixed || External || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[kmyacc]] || [http://www005.upp.so-net.ne.jp/kmori/kmyacc/] || LALR(1) || C, Java, Perl, JavaScript || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Lexical Analyzer and Parser Generator|Lapg]] || [http://sourceforge.net/projects/lapg/] || LALR || Java, Javascript, C, C++, C# || Mixed || Generated || JVM || no || [[GNU General Public License|GNU GPL]] || 2007
| [[Lexical Analyzer and Parser Generator|Lapg]] || [http://sourceforge.net/projects/lapg/] || LALR || Java, Javascript, C, C++, C# || Mixed || Generated || JVM || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Lemon Parser|LEMON]] || [http://hwaci.com/sw/lemon] || LALR || C || Mixed || External || All || no || [[Public domain]] || 2008
| [[Lemon Parser|LEMON]] || [http://hwaci.com/sw/lemon] || LALR || C || Mixed || External || All || no || [[Public domain]]
|-
|-
| [[Lime]] || [http://sourceforge.net/projects/lime-php/] || [[LALR(1)]] || [[PHP]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[Lime]] || [http://sourceforge.net/projects/lime-php/] || [[LALR(1)]] || [[PHP]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[LISA (parser generator)|LISA]] || [http://labraj.uni-mb.si/lisa] || LR, LL, LALR, SLR || Java || Mixed || Generated || JVM || yes || [[Public Domain]] || ?
| [[LISA (parser generator)|LISA]] || [http://labraj.uni-mb.si/lisa] || LR, LL, LALR, SLR || Java || Mixed || Generated || JVM || yes || [[Public Domain]]
|-
|-
| [[LPeg]] || [http://www.inf.puc-rio.br/~roberto/lpeg/] || Parsing Machine || [[Lua (programming language)|Lua]] || Mixed || Generated || All || no || [[MIT license|MIT]] || ?
| [[LPeg]] || [http://www.inf.puc-rio.br/~roberto/lpeg/] || Parsing Machine || [[Lua (programming language)|Lua]] || Mixed || Generated || All || no || [[MIT license|MIT]]
|-
|-
| [[LALR Parser Generator|LPG]] || [http://sourceforge.net/projects/lpg/] || Backtracking LALR || Java || Mixed || Generated || JVM || no || [[Eclipse Public License|EPL]] || 2008
| [[LALR Parser Generator|LPG]] || [http://sourceforge.net/projects/lpg/] || Backtracking LALR || Java || Mixed || Generated || JVM || no || [[Eclipse Public License|EPL]]
|-
|-
| [[LLgen]] || [http://freshmeat.net/projects/llgen/] || [[LL(1)]] || C || Mixed || External || POSIX || no || [[BSD]] || ?
| [[LLgen]] || [http://freshmeat.net/projects/llgen/] || [[LL(1)]] || C || Mixed || External || POSIX || no || [[BSD]]
|-
|-
| [[LLnextgen]] || [http://os.ghalkes.nl/LLnextgen/] || [[LL(1)]] || C || Mixed || External || POSIX || no || [[GNU General Public License|GNU GPL]] || ?
| [[LLnextgen]] || [http://os.ghalkes.nl/LLnextgen/] || [[LL(1)]] || C || Mixed || External || POSIX || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[LRGen]] || [http://lrgen.com/] || LR(1) || C++ || Separate || Generated || Win32 || no || [[Proprietary]] || ?
| [[LRGen]] || [http://lrgen.com/] || LR(1) || C++ || Separate || Generated || Win32 || no || [[Proprietary]]
|-
|-
| [[Menhir (parser generator)|Menhir]] || [http://cristal.inria.fr/~fpottier/menhir/] || LR(1) || OCaml || Mixed || Generated || All || no || [[Q Public License|QPL]] || ?
| [[Menhir (parser generator)|Menhir]] || [http://cristal.inria.fr/~fpottier/menhir/] || LR(1) || OCaml || Mixed || Generated || All || no || [[Q Public License|QPL]]
|-
|-
| [[Mini Parser Generator]] || [http://christophe.delord.free.fr/mp/index.html] || ? || Python || Mixed || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]] || ?
| [[Mini Parser Generator]] || [http://christophe.delord.free.fr/mp/index.html] || ? || Python || Mixed || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[ML-Yacc]] || [http://www.smlnj.org/doc/ML-Yacc/] || LALR(1) || [[ML (programming language)|ML]] || Mixed || External || All || no || ? || ?
| [[ML-Yacc]] || [http://www.smlnj.org/doc/ML-Yacc/] || LALR(1) || [[ML (programming language)|ML]] || Mixed || External || All || no || ?
|-
|-
| [[Monkey]] || [http://sourceforge.net/projects/monkey/] || [[LR(1)]] || [[Java (programming language)|Java]] || Separate || Generated || JVM || no || [[GNU General Public License|GNU GPL]] || ?
| [[Monkey]] || [http://sourceforge.net/projects/monkey/] || [[LR(1)]] || [[Java (programming language)|Java]] || Separate || Generated || JVM || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[More Than Parsing]] || [http://babel.ls.fi.upm.es/research/mtp/] || LL(1) || Java || Separate || Generated || JVM || no || [[GNU General Public License|GNU GPL]] || ?
| [[More Than Parsing]] || [http://babel.ls.fi.upm.es/research/mtp/] || LL(1) || Java || Separate || Generated || JVM || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[MyL Programming Language]] || [http://blog.ronaldomoreira.com/myl/] || ? || C#, Delphi, Java, JScript, SQL || Mixed || Generated || Win32 || no || [[Public domain]] || ?
| [[MyL Programming Language]] || [http://blog.ronaldomoreira.com/myl/] || ? || C#, Delphi, Java, JScript, SQL || Mixed || Generated || Win32 || no || [[Public domain]]
|-
|-
| [[Narwhal (parser generator)|Narwhal]] || [http://sourceforge.net/projects/narwhal/] || Packrat || C || Mixed || Generated || POSIX, Win32 || no || [[BSD licenses|BSD]] || ?
| [[Narwhal (parser generator)|Narwhal]] || [http://sourceforge.net/projects/narwhal/] || Packrat || C || Mixed || Generated || POSIX, Win32 || no || [[BSD licenses|BSD]]
|-
|-
| [[ocamlyacc]] || [http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html] || LALR(1) || OCaml || Mixed || External (Ocamllex) || All || no || [[Q Public License|QPL]] || ?
| [[ocamlyacc]] || [http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html] || LALR(1) || OCaml || Mixed || External (Ocamllex) || All || no || [[Q Public License|QPL]]
|-
|-
| [[olex]] || [http://www.irule.be/bvh/c++/olex/] || [[LL(1)]] || [[C++]] || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]] || 2002
| [[olex]] || [http://www.irule.be/bvh/c++/olex/] || [[LL(1)]] || [[C++]] || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Packrat (library)|Packrat]] || [http://www.call-with-current-continuation.org/eggs/packrat.html] || Packrat || Scheme || Mixed || Generated || All || no || [[MIT license|MIT]] || ?
| [[Packrat (library)|Packrat]] || [http://www.call-with-current-continuation.org/eggs/packrat.html] || Packrat || Scheme || Mixed || Generated || All || no || [[MIT license|MIT]]
|-
|-
| [[Pappy]] || [http://pdos.csail.mit.edu/~baford/packrat/thesis/] || Packrat || Haskell || Mixed || Generated || All || no || [[Proprietary software|Proprietary]] || ?
| [[Pappy]] || [http://pdos.csail.mit.edu/~baford/packrat/thesis/] || Packrat || Haskell || Mixed || Generated || All || no || [[Proprietary software|Proprietary]]
|-
|-
| [[Parsec (parser)]]|| [http://legacy.cs.uu.nl/daan/parsec.html] || GLR || Haskell || Mixed || None || All || no || [[BSD licence|BSD]] || ?
| [[Parsec (parser)]]|| [http://legacy.cs.uu.nl/daan/parsec.html] || GLR || Haskell || Mixed || None || All || no || [[BSD licence|BSD]]
|-
|-
| [[Parse::Yapp]] || [http://freshmeat.net/projects/parse-yapp/] || [[LALR(1)]] || [[Perl]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[Parse::Yapp]] || [http://freshmeat.net/projects/parse-yapp/] || [[LALR(1)]] || [[Perl]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Parser Objects]] || ? || LL(k) || Java || Mixed || ? || JVM || no || [[Zlib license|zlib]] || ?
| [[Parser Objects]] || ? || LL(k) || Java || Mixed || ? || JVM || no || [[Zlib license|zlib]]
|-
|-
| [[Parsnip Parser Library|Parsnip]] || [http://parsnip-parser.sourceforge.net/] || Packrat || C++ || Mixed || Generated || Win32 || no || [[GNU General Public License|GNU GPL]] || 2007
| [[Parsnip Parser Library|Parsnip]] || [http://parsnip-parser.sourceforge.net/] || Packrat || C++ || Mixed || Generated || Win32 || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[peg (parser generator)|peg]] || [http://piumarta.com/software/peg/] || Recursive Descent (PEG) || C, C++ || Mixed || Generated || All || no || [[MIT license|MIT]] || 2007
| [[peg (parser generator)|peg]] || [http://piumarta.com/software/peg/] || Recursive Descent (PEG) || C, C++ || Mixed || Generated || All || no || [[MIT license|MIT]]
|-
|-
| [[Parsing Expression Grammar Template Library|PEGTL]] || [http://code.google.com/p/pegtl/] || Recursive Descent (PEG) || C++0x || Mixed || Internal || POSIX || no || [[MIT license|MIT]] || ?
| [[Parsing Expression Grammar Template Library|PEGTL]] || [http://code.google.com/p/pegtl/] || Recursive Descent (PEG) || C++0x || Mixed || Internal || POSIX || no || [[MIT license|MIT]]
|-
|-
| [[Parser Grammar Engine|PGE]] || ? || Recursive Descent (PEG) || [[Parrot virtual machine|Parrot bytecode]] || Mixed || Generated || All || no || ? || ?
| [[Parser Grammar Engine|PGE]] || ? || Recursive Descent (PEG) || [[Parrot virtual machine|Parrot bytecode]] || Mixed || Generated || All || no || ?
|-
|-
| [[PyPy|PyPy rlib]] || [http://codespeak.net/pypy/dist/pypy/doc/rlib.html#parsing] || Packrat || Python || Mixed || Generated || All || no || [[MIT license|MIT]] || ?
| [[PyPy|PyPy rlib]] || [http://codespeak.net/pypy/dist/pypy/doc/rlib.html#parsing] || Packrat || Python || Mixed || Generated || All || no || [[MIT license|MIT]]
|-
|-
| [[Python Lex-Yacc|PLY]] || [http://www.dabeaz.com/ply/] || LALR(1) || Python || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[Python Lex-Yacc|PLY]] || [http://www.dabeaz.com/ply/] || LALR(1) || Python || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[PRECC]] || [http://vl.fmnet.info/precc/] || LL(k) || C || Separate || Generated || [[MS-DOS]], POSIX || no || [[GNU General Public License|GNU GPL]] || ?
| [[PRECC]] || [http://vl.fmnet.info/precc/] || LL(k) || C || Separate || Generated || [[MS-DOS]], POSIX || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Rats!]] || [http://cs.nyu.edu/rgrimm/xtc/rats.html] || [[Parsing expression grammar|PEG]] || Java || Mixed || Generated || JVM || no || [[GNU Lesser General Public License|GNU LGPL]] || ?
| [[Rats!]] || [http://cs.nyu.edu/rgrimm/xtc/rats.html] || [[Parsing expression grammar|PEG]] || Java || Mixed || Generated || JVM || no || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[QLALR]] || [http://labs.trolltech.com/page/Projects/Compilers/QLALR] || LALR(1) || C++ || Mixed || External || All || no || [[GNU General Public License|GNU GPL]] || ?
| [[QLALR]] || [http://labs.trolltech.com/page/Projects/Compilers/QLALR] || LALR(1) || C++ || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[SableCC]] || [http://sablecc.org/] || LALR || Java, C, C++, C#, OCaml, Python || Separate || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]] || 2008
| [[SableCC]] || [http://sablecc.org/] || LALR || Java, C, C++, C#, OCaml, Python || Separate || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[Scannerless Boolean Parser]] || [http://research.cs.berkeley.edu/project/sbp/] || [[Scannerless parsing|Scannerless GLR]] ([[Boolean grammar|Boolean Grammars]]) || Java, Haskell || Separate || Generated || All || no || [[BSD licenses|BSD]] || ?
| [[Scannerless Boolean Parser]] || [http://research.cs.berkeley.edu/project/sbp/] || [[Scannerless parsing|Scannerless GLR]] ([[Boolean grammar|Boolean Grammars]]) || Java, Haskell || Separate || Generated || All || no || [[BSD licenses|BSD]]
|-
|-
| [[SmaCC]] || [http://refactory.com/Software/SmaCC/] || LALR(1), LR(1) || [[Smalltalk]] || Mixed || Internal || All || yes || [[MIT license|MIT]] || ?
| [[SmaCC]] || [http://refactory.com/Software/SmaCC/] || LALR(1), LR(1) || [[Smalltalk]] || Mixed || Internal || All || yes || [[MIT license|MIT]]
|-
|-
| [[SLK (parser generator)|SLK]] || [http://home.earthlink.net/~slkpg/] || LL(k) || C, C++, C#, Java || Separate || External || All || no || [[Proprietary software|Proprietary]] || ?
| [[SLK (parser generator)|SLK]] || [http://home.earthlink.net/~slkpg/] || LL(k) || C, C++, C#, Java || Separate || External || All || no || [[Proprietary software|Proprietary]]
|-
|-
| [[SPARK (parser generator)|SPARK]] || [http://pages.cpsc.ucalgary.ca/~aycock/spark/] || Earley || Python || Mixed || External || All || no || [[MIT license|MIT]] || ?
| [[SPARK (parser generator)|SPARK]] || [http://pages.cpsc.ucalgary.ca/~aycock/spark/] || Earley || Python || Mixed || External || All || no || [[MIT license|MIT]]
|-
|-
| [[Spirit Parser Framework|Spirit]] || [http://spirit.sourceforge.net/] || LL(k) || C++ || Mixed || Internal || All || no || [[Boost]] || 2008
| [[Spirit Parser Framework|Spirit]] || [http://spirit.sourceforge.net/] || LL(k) || C++ || Mixed || Internal || All || no || [[Boost]]
|-
|-
| [[Styx]] || [http://sourceforge.net/projects/xstyx/] || ? || [[C (programming language)|C]] || Mixed || Generated || ? || All || [[GNU Lesser General Public License|GNU LGPL]] || ?
| [[Styx]] || [http://sourceforge.net/projects/xstyx/] || ? || [[C (programming language)|C]] || Mixed || Generated || ? || All || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[Tap]] || [http://tap.sourceforge.net/] || [[LL(1)]] || [[C++]] || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]] || 2002
| [[Tap]] || [http://tap.sourceforge.net/] || [[LL(1)]] || [[C++]] || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[TextTransformer]] || [http://texttransformer.com/] || LL(k) || C++ || Mixed || Generated || Win32 || yes || [[Proprietary software|Proprietary]] || ?
| [[TextTransformer]] || [http://texttransformer.com/] || LL(k) || C++ || Mixed || Generated || Win32 || yes || [[Proprietary software|Proprietary]]
|-
|-
| [[Tom]] || [http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/nlp/parsing/tom/0.html] || [[LR(k)]] (Tomita) || C || Generated || None || All || no || [[Proprietary software|Proprietary]] || ?
| [[Tom]] || [http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/nlp/parsing/tom/0.html] || [[LR(k)]] (Tomita) || C || Generated || None || All || no || [[Proprietary software|Proprietary]]
|-
|-
| [[Toy Parser Generator]] || [http://christophe.delord.free.fr/tpg/] || Recusive Descent || Python || Mixed || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]] || ?
| [[Toy Parser Generator]] || [http://christophe.delord.free.fr/tpg/] || Recusive Descent || Python || Mixed || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[Turbo Pascal Lex/Yacc|TP Yacc]] || [http://www.musikwissenschaft.uni-mainz.de/~ag/tply/tply.html] || LALR(1) || [[Turbo Pascal]] || Mixed || External || All || yes || [[GNU General Public License|GNU GPL]] || ?
| [[Turbo Pascal Lex/Yacc|TP Yacc]] || [http://www.musikwissenschaft.uni-mainz.de/~ag/tply/tply.html] || LALR(1) || [[Turbo Pascal]] || Mixed || External || All || yes || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Treetop]] || [http://treetop.rubyforge.org/] || Recusive Descent (PEG) || Ruby || Mixed || Generated || All || no || ? || ?
| [[Treetop]] || [http://treetop.rubyforge.org/] || Recusive Descent (PEG) || Ruby || Mixed || Generated || All || no || ?
|-
|-
| [[yacc|Yacc (AT&T)]] || ? || LALR || C, others || Mixed || External || POSIX || no || ? || ?
| [[yacc|Yacc (AT&T)]] || ? || LALR || C, others || Mixed || External || POSIX || no || ?
|-
|-
| [[Yacc++]] || [http://world.std.com/~compres/] || LR(k)/LALR(k) || C++, C# || Mixed || Generated or External || All || no || [[Proprietary software|Proprietary]] || ?
| [[Yacc++]] || [http://world.std.com/~compres/] || LR(k)/LALR(k) || C++, C# || Mixed || Generated or External || All || no || [[Proprietary software|Proprietary]]
|-
|-
| [[Yapps]] || [http://theory.stanford.edu/~amitp/yapps/] || LL(1) || Python || Mixed || Generated || All || no || [[MIT license|MIT]] || ?
| [[Yapps]] || [http://theory.stanford.edu/~amitp/yapps/] || LL(1) || Python || Mixed || Generated || All || no || [[MIT license|MIT]]
|-
|-
| [[Yard]] || [http://code.google.com/p/yardparser/] || Recursive Descent (PEG) || C++ || Mixed || Generated || All || no || [[MIT license|MIT]] or [[Public Domain]] || 2008
| [[Yard]] || [http://code.google.com/p/yardparser/] || Recursive Descent (PEG) || C++ || Mixed || Generated || All || no || [[MIT license|MIT]] or [[Public Domain]]
|-
|-
| [[yecc]] || [http://www.erlang.org/faq/parsing.html] || LALR(1) || [[Erlang (programming language)|Erlang]] || Separate || Generated || All || no || [[Erlang (programming language)|Erlang]] || ?
| [[yecc]] || [http://www.erlang.org/faq/parsing.html] || LALR(1) || [[Erlang (programming language)|Erlang]] || Separate || Generated || All || no || [[Erlang (programming language)|Erlang]]
|-
|-
| [[Visual BNF]] || [http://intralogic.eu/] || LR(1)/LALR(1) || C# || Separate || Generated || .NET || yes || [[Proprietary software|Proprietary]] || ?
| [[Visual BNF]] || [http://intralogic.eu/] || LR(1)/LALR(1) || C# || Separate || Generated || .NET || yes || [[Proprietary software|Proprietary]]
|-
|-
| [[Visual Parse++]] || [http://sand-stone.com/] || LALR || C, C++, C#, Java || Separate || Generated || Win32 || yes || [[Proprietary software|Proprietary]] || ?
| [[Visual Parse++]] || [http://sand-stone.com/] || LALR || C, C++, C#, Java || Separate || Generated || Win32 || yes || [[Proprietary software|Proprietary]]
|-
|-
| [[YooParse]] || [http://yooparse.sourceforge.net/] || LR || C++ || Mixed || External ([[YooLex]]) || All || no || [[MIT license|MIT]] || 2002
| [[YooParse]] || [http://yooparse.sourceforge.net/] || LR || C++ || Mixed || External ([[YooLex]]) || All || no || [[MIT license|MIT]]
|-
|-
| [[Wisent]] || [http://sourceforge.net/projects/wisent/] || [[LALR(1)]] || [[C++]], [[Java (programming language)|Java]] || Mixed || External || JVM || All || [[GNU General Public License|GNU GPL]] || 2006
| [[Wisent]] || [http://sourceforge.net/projects/wisent/] || [[LALR(1)]] || [[C++]], [[Java (programming language)|Java]] || Mixed || External || JVM || All || [[GNU General Public License|GNU GPL]]
|-class="sortbottom"
|-class="sortbottom"
! Product !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! [[Lexical analyzer|Lexer]] !! Development Platform !! [[Integrated Development Environment|IDE]] !! [[Software license|License]] !! Latest release
! Product !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! [[Lexical analyzer|Lexer]] !! Development Platform !! [[Integrated Development Environment|IDE]] !! [[Software license|License]]
|}
|}



Revision as of 12:23, 24 October 2008

This is a list of notable parsing systems.

Chart Key

The following key describes the columns used in the comparison chart below.

Table Column Description
Parser Algorithm Each parsing system implements a special algorithm for analyzing a token stream and building a tree structure which corresponds to the syntax of the language as defined by a grammar. The different parsing algorithms are: LALR, LR(1), GLR, and LL.
Output Languages Most parser generators output source code in one or more specific programming languages. This source code is used in the construction of the compiler, interpreter or translator.
Grammar/Code If the grammar and source code are "mixed", the developer's source code is directly embedded into the grammar. This is the approach typically used by compiler-compilers. If "separated", the grammar and source-code are developed separately.
Lexer The lexer is used to read characters and identify tokens and pass them to the parser. Lexers can be generated by the parser development software, a separate lexer generator or hand coded.
Development Platform This is the required platform and/or operating system required to use the parser development software.
IDE Some products feature an integrated development environment.
License This column indicates the type end-user license offered by the author of the product.

Comparison Charts

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 JVM yes BSD
AnaGram [3] LALR(1) C, C++ Mixed Generated Win32 ? 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
Aurochs [6] Packrat C, Ocaml, Java Mixed Generated All no GNU GPL
Beaver [7] LALR Java Mixed External JVM no BSD
Bison [8] LALR, GLR C, C++ Mixed External All no GNU GPL
Bison++ [9] LALR(1) C++ Mixed External POSIX No GNU GPL
Bisonc++ [10] LALR(1) C++ Mixed External POSIX No GNU GPL
BtYacc [11] LALR C++ Mixed External All no Public domain
BYACC [12] LALR C Mixed External All no Public domain
BYACC/J [13] LALR C, Java Mixed External (JFlex) All no Public domain
CL-peg [14] Packrat Common Lisp Mixed Generated All no MIT
CL-Yacc [15] LALR(1) Common Lisp Mixed External All no MIT
Coco/R [16] LL(k) C, C++, C#, F#, Java, Ada, Pascal, Modula-2, Oberon, Ruby, Unicon, Visual Basic .NET Mixed Generated JVM, .NET no GNU GPL
CppCC [17] LL(k) C++ Mixed Generated POSIX no GNU GPL
CSP [18] LR(1) C++ Separate Generated POSIX no Apache License V2.0
CSTools [19] LALR C# Mixed Generated .NET no ?
CUP [20] LALR Java Mixed External (JLex) JVM no GNU GPL
DMS Software Reengineering Toolkit [21] GLR Parlanse Mixed Generated Win32 no Proprietary
DParser [22] Scannerless GLR C Mixed Generated POSIX no BSD
Dragon [23] LR(1), LALR C++, Java Separate Generated All no GNU GPL
Drat! [24] Packrat D Mixed Generated All no GNU GPL
Elkhound [25] GLR C++, OCaml Mixed External All no BSD
eli [26] LALR C, others Mixed Generated POSIX no GNU GPL, GNU LGPL
Essence [27] LR Scheme (Scheme 48) Mixed External All no BSD
eyapp [28] LALR(1) Perl Mixed External All no Perl
F# PegParser [29] Packrat F# Mixed Generated .NET no ?
Frisby [30] Packrat Haskell Mixed Generated All no BSD
Frown [31] LALR(k) Haskell 98 Mixed External All no GNU GPL
GDK [32] LALR(1), GLR C, Delphi, Lex, Haskell, HTML, Java, Yacc Mixed Generated POSIX No MIT
GOLD [33] LALR x86 assembly language, ANSI C, C#, D, Delphi, Java, Pascal, Python, Visual Basic 6, Visual Basic .NET, Visual C++ Separate Generated Win32 yes Freeware
grammar::peg [34] Packrat TCL Mixed Generated All no BSD
Grammatica [35] LL(k) C#, Java Separate Generated JVM no GNU LGPL
Happy [36] LALR, GLR Haskell Mixed External All no BSD
HiLexed [37] LL(k) Java Separate Internal JVM no GNU LGPL
Hyacc [38] LR(1) C Mixed External All no GNU GPL
jacc [39] LALR Java Mixed External JVM no BSD
JavaCC [40] LL(k) Java Mixed Generated JVM yes BSD
jay [41] LALR C#, Java Mixed None All no BSD
JetPAG [42] LL(k) C++ Mixed Generated All no GNU GPL
JS/CC [43] LALR(1) JavaScript, JScript, ECMAScript Mixed Internal All yes Artistic
Kelbt [44] Backtracking LALR(1) C++ Mixed Generated POSIX no GNU GPL
kmyacc [45] LALR(1) C, Java, Perl, JavaScript Mixed External All no GNU GPL
Lapg [46] LALR Java, Javascript, C, C++, C# Mixed Generated JVM no GNU GPL
LEMON [47] LALR C Mixed External All no Public domain
Lime [48] LALR(1) PHP Mixed External All no GNU GPL
LISA [49] LR, LL, LALR, SLR Java Mixed Generated JVM yes Public Domain
LPeg [50] Parsing Machine Lua Mixed Generated All no MIT
LPG [51] Backtracking LALR Java Mixed Generated JVM no EPL
LLgen [52] LL(1) C Mixed External POSIX no BSD
LLnextgen [53] LL(1) C Mixed External POSIX no GNU GPL
LRGen [54] LR(1) C++ Separate Generated Win32 no Proprietary
Menhir [55] LR(1) OCaml Mixed Generated All no QPL
Mini Parser Generator [56] ? Python Mixed Generated All no GNU LGPL
ML-Yacc [57] LALR(1) ML Mixed External All no ?
Monkey [58] LR(1) Java Separate Generated JVM no GNU GPL
More Than Parsing [59] LL(1) Java Separate Generated JVM no GNU GPL
MyL Programming Language [60] ? C#, Delphi, Java, JScript, SQL Mixed Generated Win32 no Public domain
Narwhal [61] Packrat C Mixed Generated POSIX, Win32 no BSD
ocamlyacc [62] LALR(1) OCaml Mixed External (Ocamllex) All no QPL
olex [63] LL(1) C++ Mixed Generated All no GNU GPL
Packrat [64] Packrat Scheme Mixed Generated All no MIT
Pappy [65] Packrat Haskell Mixed Generated All no Proprietary
Parsec (parser) [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 ? JVM no zlib
Parsnip [68] Packrat C++ Mixed Generated Win32 no GNU GPL
peg [69] Recursive Descent (PEG) C, C++ Mixed Generated All no MIT
PEGTL [70] Recursive Descent (PEG) C++0x Mixed Internal POSIX no MIT
PGE ? Recursive Descent (PEG) Parrot bytecode Mixed Generated All no ?
PyPy rlib [71] Packrat Python Mixed Generated All no MIT
PLY [72] LALR(1) Python Mixed Generated All no GNU GPL
PRECC [73] LL(k) C Separate Generated MS-DOS, POSIX no GNU GPL
Rats! [74] PEG Java Mixed Generated JVM no GNU LGPL
QLALR [75] LALR(1) C++ Mixed External All no GNU GPL
SableCC [76] LALR Java, C, C++, C#, OCaml, Python Separate Generated All no GNU LGPL
Scannerless Boolean Parser [77] Scannerless GLR (Boolean Grammars) Java, Haskell Separate Generated All no BSD
SmaCC [78] LALR(1), LR(1) Smalltalk Mixed Internal All yes MIT
SLK [79] LL(k) C, C++, C#, Java Separate External All no Proprietary
SPARK [80] Earley Python Mixed External All no MIT
Spirit [81] LL(k) C++ Mixed Internal All no Boost
Styx [82] ? C Mixed Generated ? All GNU LGPL
Tap [83] LL(1) C++ Mixed Generated All no GNU GPL
TextTransformer [84] LL(k) C++ Mixed Generated Win32 yes Proprietary
Tom [85] LR(k) (Tomita) C Generated None All no Proprietary
Toy Parser Generator [86] Recusive Descent Python Mixed Generated All no GNU LGPL
TP Yacc [87] LALR(1) Turbo Pascal Mixed External All yes GNU GPL
Treetop [88] Recusive Descent (PEG) Ruby Mixed Generated All no ?
Yacc (AT&T) ? LALR C, others Mixed External POSIX no ?
Yacc++ [89] LR(k)/LALR(k) C++, C# Mixed Generated or External All no Proprietary
Yapps [90] LL(1) Python Mixed Generated All no MIT
Yard [91] Recursive Descent (PEG) C++ Mixed Generated All no MIT or Public Domain
yecc [92] LALR(1) Erlang Separate Generated All no Erlang
Visual BNF [93] LR(1)/LALR(1) C# Separate Generated .NET yes Proprietary
Visual Parse++ [94] LALR C, C++, C#, Java Separate Generated Win32 yes Proprietary
YooParse [95] LR C++ Mixed External (YooLex) All no MIT
Wisent [96] LALR(1) C++, Java Mixed External JVM All GNU GPL
Product Website Parsing Algorithm Output Languages Grammar / Code Lexer Development Platform IDE License

See also