Jump to content

Comparison of parser generators: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
Hyperyl (talk | contribs)
Hyperyl (talk | contribs)
change capitalisation
Line 5: Line 5:
! Name !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! Development Platform !! [[Software license|License]]
! Name !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! Development Platform !! [[Software license|License]]
|-
|-
| [[Dolphin (parser generator)|Dolphin]] || [http://users.utu.fi/aleokh/dolphin/] || [[Deterministic finite state machine|DFA]] || [[C++]] || Separated || All|| [[Proprietary software|Proprietary]]
| [[Dolphin (parser generator)|Dolphin]] || [http://users.utu.fi/aleokh/dolphin/] || [[Deterministic finite state machine|DFA]] || [[C++]] || separate || all|| [[Proprietary software|Proprietary]]
|-
|-
| [[flex lexical analyser|flex]] || [http://flex.sourceforge.net/] || [[Deterministic finite state machine|DFA]] || [[C]] || Mixed || All|| [[GNU General Public License|GNU GPL]]
| [[flex lexical analyser|flex]] || [http://flex.sourceforge.net/] || [[Deterministic finite state machine|DFA]] || [[C]] || mixed || all|| [[GNU General Public License|GNU GPL]]
|-
|-
| [[JFlex]] || [http://jflex.de/] || ? || [[Java (programming language)|Java]] || ? || [[Java Virtual Machine]] || [[GNU General Public License|GNU GPL]]
| [[JFlex]] || [http://jflex.de/] || ? || [[Java (programming language)|Java]] || ? || [[Java Virtual Machine]] || [[GNU General Public License|GNU GPL]]
Line 13: Line 13:
| [[JLex]] || [http://www.cs.princeton.edu/~appel/modern/java/JLex/] || ? || [[Java (programming language)|Java]] || ? || [[Java Virtual Machine]] || ?
| [[JLex]] || [http://www.cs.princeton.edu/~appel/modern/java/JLex/] || ? || [[Java (programming language)|Java]] || ? || [[Java Virtual Machine]] || ?
|-
|-
| [[lex programming tool|lex]] || ? || [[Deterministic finite state machine|DFA]] || [[C (programming language)|C]] || Mixed || [[POSIX]] || [[Proprietary software|Proprietary]]
| [[lex programming tool|lex]] || ? || [[Deterministic finite state machine|DFA]] || [[C (programming language)|C]] || mixed || [[POSIX]] || [[Proprietary software|Proprietary]]
|-
|-
| [[Quex]] || [http://quex.sourceforge.net/] || [[Deterministic finite state machine|DFA]] || [[C++]] || Mixed || All || [[GNU Lesser General Public License|GNU LGPL]]
| [[Quex]] || [http://quex.sourceforge.net/] || [[Deterministic finite state machine|DFA]] || [[C++]] || mixed || all || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[Ragel]] || [http://www.complang.org/ragel/] || [[Deterministic finite state machine|DFA]] || [[C (programming language)|C]], [[C++]], [[D (programming language)|D]], [[Java (programming language)|Java]], [[Objective-C]], [[Ruby (programming language)|Ruby]] || Mixed || All || [[GNU General Public License|GNU GPL]]
| [[Ragel]] || [http://www.complang.org/ragel/] || [[Deterministic finite state machine|DFA]] || [[C (programming language)|C]], [[C++]], [[D (programming language)|D]], [[Java (programming language)|Java]], [[Objective-C]], [[Ruby (programming language)|Ruby]] || mixed || all || [[GNU General Public License|GNU GPL]]
|-
|-
| [[re2c]] || [http://re2c.org/] || [[Deterministic finite state machine|DFA]] || [[C (programming language)|C]] || Mixed || All || [[MIT License|MIT]]
| [[re2c]] || [http://re2c.org/] || [[Deterministic finite state machine|DFA]] || [[C (programming language)|C]] || mixed || all || [[MIT License|MIT]]
|-
|-
| Russ Cox's [[regular expression]] implementations || [http://swtch.com/~rsc/regexp/] || [[Deterministic finite state machine|DFA]], [[Nondeterministic finite state machine|NFA]] || [[Bytecode]], [[x86 assembly language]], interpreted || Separated || All|| [[MIT license|MIT]]
| Russ Cox's [[regular expression]] implementations || [http://swtch.com/~rsc/regexp/] || [[Deterministic finite state machine|DFA]], [[Nondeterministic finite state machine|NFA]] || [[Bytecode]], [[x86 assembly language]], interpreted || separate || all|| [[MIT license|MIT]]
|}
|}


Line 28: Line 28:
! Name !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! [[Lexical analyzer|Lexer]] !! Development Platform !! [[Integrated Development Environment|IDE]] !! [[Software license|License]]
! Name !! [[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]]
| [[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]] || 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]] || yes || [[BSD licenses|BSD]]
|-
|-
| [[AnaGram]] || [http://www.parsifalsoft.com/] || [[LALR parser|LALR(1)]] || [[C (programming language)|C]], [[C++]] || Mixed || Generated || [[Microsoft Windows]] || ? || [[Proprietary software|Proprietary]]
| [[AnaGram]] || [http://www.parsifalsoft.com/] || [[LALR parser|LALR(1)]] || [[C (programming language)|C]], [[C++]] || mixed || generated || [[Microsoft Windows]] || ? || [[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 (programming language)|C]], [[C++]] || Separate || None || All || no || [[GNU General Public License|GNU GPL]]
| [[APG (parser generator)|APG]] || [http://coasttocoastresearch.com/] || [[Recursive descent parser|Recursive Descent]] || [[C (programming language)|C]], [[C++]] || separate || none || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Beaver (parser generator)|Beaver]] || [http://beaver.sourceforge.net/] || [[LALR parser|LALR]] || [[Java (programming language)|Java]] || Mixed || External || [[Java Virtual Machine]] || no || [[BSD licenses|BSD]]
| [[Beaver (parser generator)|Beaver]] || [http://beaver.sourceforge.net/] || [[LALR parser|LALR]] || [[Java (programming language)|Java]] || mixed || external || [[Java Virtual Machine]] || no || [[BSD licenses|BSD]]
|-
|-
| [[GNU bison|Bison]] || [http://gnu.org/software/bison/] || [[LALR parser|LALR]], [[GLR parser|GLR]] || [[C (programming language)|C]], [[C++]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
| [[GNU bison|Bison]] || [http://gnu.org/software/bison/] || [[LALR parser|LALR]], [[GLR parser|GLR]] || [[C (programming language)|C]], [[C++]] || mixed || external || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Bison++]] || [ftp://ftp.iecc.com/pub/file/bison++flex++/] || [[LALR parser|LALR(1)]] || [[C++]] || Mixed || External || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
| [[Bison++]] || [ftp://ftp.iecc.com/pub/file/bison++flex++/] || [[LALR parser|LALR(1)]] || [[C++]] || mixed || external || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Bisonc++]] || [http://bisoncpp.sourceforge.net/] || [[LALR parser|LALR(1)]] || [[C++]] || Mixed || External || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
| [[Bisonc++]] || [http://bisoncpp.sourceforge.net/] || [[LALR parser|LALR(1)]] || [[C++]] || mixed || external || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[BtYacc]] || [http://siber.com/btyacc/] || [[LALR parser|LALR]] || [[C++]] || Mixed || External || All || no || [[Public domain]]
| [[BtYacc]] || [http://siber.com/btyacc/] || [[LALR parser|LALR]] || [[C++]] || mixed || external || all || no || [[Public domain]]
|-
|-
| [[Berkeley Yacc|BYACC]] || [http://invisible-island.net/byacc/byacc.html] || [[LALR parser|LALR]] || [[C (programming language)|C]] || Mixed || External || All || no || [[Public domain]]
| [[Berkeley Yacc|BYACC]] || [http://invisible-island.net/byacc/byacc.html] || [[LALR parser|LALR]] || [[C (programming language)|C]] || mixed || external || all || no || [[Public domain]]
|-
|-
| [[BYACC/J]] || [http://byaccj.sourceforge.net/] || [[LALR parser|LALR]] || [[C (programming language)|C]], [[Java (programming language)|Java]] || Mixed || External || All || no || [[Public domain]]
| [[BYACC/J]] || [http://byaccj.sourceforge.net/] || [[LALR parser|LALR]] || [[C (programming language)|C]], [[Java (programming language)|Java]] || mixed || external || all || no || [[Public domain]]
|-
|-
| [[CL-Yacc]] || [http://www.pps.jussieu.fr/~jch/software/cl-yacc/] || [[LALR parser|LALR(1)]] || [[Common Lisp]] || Mixed || External || All || no || [[MIT license|MIT]]
| [[CL-Yacc]] || [http://www.pps.jussieu.fr/~jch/software/cl-yacc/] || [[LALR parser|LALR(1)]] || [[Common Lisp]] || mixed || external || all || no || [[MIT license|MIT]]
|-
|-
| [[Coco/R]] || [http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/] || [[LL parser|LL(k)]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[F Sharp (programming language)|F#]], [[Java (programming language)|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 || [[Java Virtual Machine]], [[.NET Framework]] || no || [[GNU General Public License|GNU GPL]]
| [[Coco/R]] || [http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/] || [[LL parser|LL(k)]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[F Sharp (programming language)|F#]], [[Java (programming language)|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 || [[Java Virtual Machine]], [[.NET Framework]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[CppCC]] || [http://cppcc.sourceforge.net/] || [[LL parser|LL(k)]] || [[C++]] || Mixed || Generated || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
| [[CppCC]] || [http://cppcc.sourceforge.net/] || [[LL parser|LL(k)]] || [[C++]] || mixed || generated || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[CSP]] || [http://csparser.sourceforge.net/] || [[Canonical LR parser|LR(1)]] || [[C++]] || Separate || Generated || [[POSIX]] || no || [[Apache License|Apache License 2.0]]
| [[CSP]] || [http://csparser.sourceforge.net/] || [[Canonical LR parser|LR(1)]] || [[C++]] || separate || generated || [[POSIX]] || no || [[Apache License|Apache License 2.0]]
|-
|-
| [[CSTools]] || [http://cis.paisley.ac.uk/crow-ci0/] || [[LALR parser|LALR]] || [[C Sharp (programming language)|C#]] || Mixed || Generated || [[.NET Framework]] || no || [[Proprietary software|Proprietary]]
| [[CSTools]] || [http://cis.paisley.ac.uk/crow-ci0/] || [[LALR parser|LALR]] || [[C Sharp (programming language)|C#]] || mixed || generated || [[.NET Framework]] || no || [[Proprietary software|Proprietary]]
|-
|-
| [[CUP (parser generator)|CUP]] || [http://www.cs.princeton.edu/~appel/modern/java/CUP/] || [[LALR parser|LALR]] || [[Java (programming language)|Java]] || Mixed || External || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
| [[CUP (parser generator)|CUP]] || [http://www.cs.princeton.edu/~appel/modern/java/CUP/] || [[LALR parser|LALR]] || [[Java (programming language)|Java]] || mixed || external || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[DMS Software Reengineering Toolkit]] || [http://semanticdesigns.com/Products/DMS/DMSToolkit.html] || [[GLR parser|GLR]] || [[Parlanse]] || Mixed || Generated || [[Microsoft Windows]] || no || [[Proprietary software|Proprietary]]
| [[DMS Software Reengineering Toolkit]] || [http://semanticdesigns.com/Products/DMS/DMSToolkit.html] || [[GLR parser|GLR]] || [[Parlanse]] || mixed || generated || [[Microsoft Windows]] || no || [[Proprietary software|Proprietary]]
|-
|-
| [[DParser]] || [http://dparser.sourceforge.net/] || [[Scannerless parsing|Scannerless GLR]] || [[C (programming language)|C]] || Mixed || Generated || [[POSIX]] || no || [[BSD licenses|BSD]]
| [[DParser]] || [http://dparser.sourceforge.net/] || [[Scannerless parsing|Scannerless GLR]] || [[C (programming language)|C]] || mixed || generated || [[POSIX]] || no || [[BSD licenses|BSD]]
|-
|-
| [[Dragon]] || [http://www.lemke-it.com/] || [[Canonical LR parser|LR(1)]], [[LALR parser|LALR]] || [[C++]], [[Java (programming language)|Java]] || Separate || Generated || All || no || [[GNU General Public License|GNU GPL]]
| [[Dragon]] || [http://www.lemke-it.com/] || [[Canonical LR parser|LR(1)]], [[LALR parser|LALR]] || [[C++]], [[Java (programming language)|Java]] || separate || generated || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Elkhound (parser generator)|Elkhound]] || [http://cs.berkeley.edu/~smcpeak/elkhound/] || [[GLR parser|GLR]] || [[C++]], [[Objective Caml|OCaml]] || Mixed || External || All || no || [[BSD licenses|BSD]]
| [[Elkhound (parser generator)|Elkhound]] || [http://cs.berkeley.edu/~smcpeak/elkhound/] || [[GLR parser|GLR]] || [[C++]], [[Objective Caml|OCaml]] || mixed || external || all || no || [[BSD licenses|BSD]]
|-
|-
<!-- Other programming languages possibly supported. See http://eli-project.sourceforge.net/ -->
<!-- Other programming languages possibly supported. See http://eli-project.sourceforge.net/ -->
| [[eli (parser generator)|eli]] || [http://eli-project.sourceforge.net/] || [[LALR parser|LALR]] || [[C (programming language)|C]] || 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 parser|LALR]] || [[C (programming language)|C]] || 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 parser|LR]] || [[Scheme 48]] || Mixed || External || All || no || [[BSD licenses|BSD]]
| [[Essence (software)|Essence]] || [http://www.informatik.uni-freiburg.de/proglang/software/essence/] || [[LR parser|LR]] || [[Scheme 48]] || mixed || external || all || no || [[BSD licenses|BSD]]
|-
|-
| [[eyapp]] || [http://search.cpan.org/~casiano/Parse-Eyapp/] || [[Canonical LR parser|LALR(1)]] || [[Perl]] || Mixed || External || All || no || [[Perl]]
| [[eyapp]] || [http://search.cpan.org/~casiano/Parse-Eyapp/] || [[Canonical LR parser|LALR(1)]] || [[Perl]] || mixed || external || all || no || [[Perl]]
|-
|-
| [[Frown]] || [http://www.informatik.uni-bonn.de/~ralf/frown/] || [[LALR parser|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 parser|LALR(k)]] || [[Haskell|Haskell 98]] || mixed || external || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
<!-- More parsing algorithms and output formats supported. See http://gdk.sourceforge.net/gdkref.pdf -->
<!-- More parsing algorithms and output formats supported. See http://gdk.sourceforge.net/gdkref.pdf -->
| [[Grammar Deployment Kit|GDK]] || [http://sourceforge.net/projects/gdk] || [[LALR parser|LALR(1)]], [[GLR parser|GLR]] || [[C (programming language)|C]], [[Lex programming tool|Lex]], [[Haskell (programming language)|Haskell]], [[HTML]], [[Java (programming language)|Java]], [[Object Pascal]], [[Yacc]] || Mixed || Generated || [[POSIX]] || No || [[MIT license|MIT]]
| [[Grammar Deployment Kit|GDK]] || [http://sourceforge.net/projects/gdk] || [[LALR parser|LALR(1)]], [[GLR parser|GLR]] || [[C (programming language)|C]], [[Lex programming tool|Lex]], [[Haskell (programming language)|Haskell]], [[HTML]], [[Java (programming language)|Java]], [[Object Pascal]], [[Yacc]] || mixed || generated || [[POSIX]] || No || [[MIT license|MIT]]
|-
|-
| [[GOLD (parser)|GOLD]] || [http://devincook.com/goldparser/] || [[LALR parser|LALR]] || [[x86 assembly language]], [[ANSI C]], [[C Sharp (programming language)|C#]], [[D (programming language)|D]], [[Java (programming language)|Java]], [[Pascal (programming language)|Pascal]], [[Object Pascal]], [[Python (programming language)|Python]], [[Visual Basic|Visual Basic 6]], [[Visual Basic .NET]], [[Visual C++]] || Separate || Generated || [[Microsoft Windows]] || yes || [[Freeware]]
| [[GOLD (parser)|GOLD]] || [http://devincook.com/goldparser/] || [[LALR parser|LALR]] || [[x86 assembly language]], [[ANSI C]], [[C Sharp (programming language)|C#]], [[D (programming language)|D]], [[Java (programming language)|Java]], [[Pascal (programming language)|Pascal]], [[Object Pascal]], [[Python (programming language)|Python]], [[Visual Basic|Visual Basic 6]], [[Visual Basic .NET]], [[Visual C++]] || separate || generated || [[Microsoft Windows]] || yes || [[Freeware]]
|-
|-
| [[GPPG]] || [http://www.plas.fit.qut.edu.au/gppg/Default.aspx] || [[LALR parser|LALR]] || [[C Sharp (programming language)|C#]] || Separate || External || [[Microsoft Windows]] || yes || [[Freeware]]
| [[GPPG]] || [http://www.plas.fit.qut.edu.au/gppg/Default.aspx] || [[LALR parser|LALR]] || [[C Sharp (programming language)|C#]] || separate || external || [[Microsoft Windows]] || yes || [[Freeware]]
|-
|-
| [[Grammatica]] || [http://grammatica.percederberg.net/] || [[LL parser|LL(k)]] || [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] || Separate || Generated || [[Java Virtual Machine]] || no || [[GNU Lesser General Public License|GNU LGPL]]
| [[Grammatica]] || [http://grammatica.percederberg.net/] || [[LL parser|LL(k)]] || [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] || separate || generated || [[Java Virtual Machine]] || no || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[Happy (Parser)|Happy]] || [http://www.haskell.org/happy/] || [[LALR parser|LALR]], [[GLR parser|GLR]] || [[Haskell (programming language)|Haskell]] || Mixed || External || All || no || [[BSD licenses|BSD]]
| [[Happy (Parser)|Happy]] || [http://www.haskell.org/happy/] || [[LALR parser|LALR]], [[GLR parser|GLR]] || [[Haskell (programming language)|Haskell]] || mixed || external || all || no || [[BSD licenses|BSD]]
|-
|-
| [[HiLexed]] || [http://www.hilexed.org/] || [[LL parser|LL(k)]] || [[Java (programming language)|Java]] || Separate || Internal || [[Java Virtual Machine]] || no || [[GNU Lesser General Public Licence|GNU LGPL]]
| [[HiLexed]] || [http://www.hilexed.org/] || [[LL parser|LL(k)]] || [[Java (programming language)|Java]] || separate || internal || [[Java Virtual Machine]] || no || [[GNU Lesser General Public Licence|GNU LGPL]]
|-
|-
| [[Hyacc]] || [http://hyacc.sourceforge.net/] || [[Canonical LR parser|LR(1)]] || [[C (programming language)|C]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
| [[Hyacc]] || [http://hyacc.sourceforge.net/] || [[Canonical LR parser|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 parser|LALR]] || [[Java (programming language)|Java]] || Mixed || External || [[Java Virtual Machine]] || no || [[BSD licenses|BSD]]
| [[jacc]] || [http://web.cecs.pdx.edu/~mpj/jacc/index.html] || [[LALR parser|LALR]] || [[Java (programming language)|Java]] || mixed || external || [[Java Virtual Machine]] || no || [[BSD licenses|BSD]]
|-
|-
| [[JavaCC]] || [https://javacc.dev.java.net/] || [[LL parser|LL(k)]] || [[Java (programming language)|Java]] || Mixed || Generated || [[Java Virtual Machine]] || yes || [[BSD licenses|BSD]]
| [[JavaCC]] || [https://javacc.dev.java.net/] || [[LL parser|LL(k)]] || [[Java (programming language)|Java]] || mixed || generated || [[Java Virtual Machine]] || yes || [[BSD licenses|BSD]]
|-
|-
| [[jay (parser generator)|jay]] || [http://www.cs.rit.edu/~ats/projects/lp/doc/jay/package-summary.html] || [[LALR parser|LALR]] || [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] || Mixed || None || [[Java Virtual Machine]] || no || [[BSD licenses|BSD]]
| [[jay (parser generator)|jay]] || [http://www.cs.rit.edu/~ats/projects/lp/doc/jay/package-summary.html] || [[LALR parser|LALR]] || [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] || mixed || none || [[Java Virtual Machine]] || no || [[BSD licenses|BSD]]
|-
|-
| [[JetPAG]] || [http://jetpag.sourceforge.net/] || [[LL parser|LL(k)]] || [[C++]] || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
| [[JetPAG]] || [http://jetpag.sourceforge.net/] || [[LL parser|LL(k)]] || [[C++]] || mixed || generated || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[JS/CC]] || [http://jscc.jmksf.com/] || [[LALR parser|LALR(1)]] || [[JavaScript]], [[JScript]], [[ECMAScript]] || Mixed || Internal || All || yes || [[Artistic license|Artistic]]
| [[JS/CC]] || [http://jscc.jmksf.com/] || [[LALR parser|LALR(1)]] || [[JavaScript]], [[JScript]], [[ECMAScript]] || mixed || internal || all || yes || [[Artistic license|Artistic]]
|-
|-
| [[Kelbt]] || [http://research.cs.queensu.ca/~thurston/kelbt/] || [[LALR parser|Backtracking LALR(1)]] || [[C++]] || Mixed || Generated || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
| [[Kelbt]] || [http://research.cs.queensu.ca/~thurston/kelbt/] || [[LALR parser|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 parser|LALR(1)]] || [[C (programming language)|C]], [[Java (programming language)|Java]], [[Perl]], [[JavaScript]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
| [[kmyacc]] || [http://www005.upp.so-net.ne.jp/kmori/kmyacc/] || [[LALR parser|LALR(1)]] || [[C (programming language)|C]], [[Java (programming language)|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 parser|LALR]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[JavaScript]] || Mixed || Generated || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
| [[Lexical Analyzer and Parser Generator|Lapg]] || [http://sourceforge.net/projects/lapg/] || [[LALR parser|LALR]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[JavaScript]] || mixed || generated || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Lemon Parser Generator|Lemon]] || [http://hwaci.com/sw/lemon] || [[LALR parser|LALR]] || [[C (programming language)|C]] || Mixed || External || All || no || [[Public domain]]
| [[Lemon Parser Generator|Lemon]] || [http://hwaci.com/sw/lemon] || [[LALR parser|LALR]] || [[C (programming language)|C]] || mixed || external || all || no || [[Public domain]]
|-
|-
| [[Lime (parser generator)|Lime]] || [http://sourceforge.net/projects/lime-php/] || [[LALR parser|LALR(1)]] || [[PHP]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
| [[Lime (parser generator)|Lime]] || [http://sourceforge.net/projects/lime-php/] || [[LALR parser|LALR(1)]] || [[PHP]] || mixed || external || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[LISA (parser generator)|LISA]] || [http://labraj.uni-mb.si/lisa] || [[LR parser|LR]], [[LL parser|LL]], [[LALR parser|LALR]], [[Simple LR parser|SLR]] || [[Java (programming language)|Java]] || Mixed || Generated || [[Java Virtual Machine]] || yes || [[Public Domain]]
| [[LISA (parser generator)|LISA]] || [http://labraj.uni-mb.si/lisa] || [[LR parser|LR]], [[LL parser|LL]], [[LALR parser|LALR]], [[Simple LR parser|SLR]] || [[Java (programming language)|Java]] || mixed || generated || [[Java Virtual Machine]] || yes || [[Public Domain]]
|-
|-
| [[LALR Parser Generator|LPG]] || [http://sourceforge.net/projects/lpg/] || [[LALR parser|Backtracking LALR(k)]] || [[Java (programming language)|Java]] || Mixed || Generated || [[Java Virtual Machine]] || no || [[Eclipse Public License|EPL]]
| [[LALR Parser Generator|LPG]] || [http://sourceforge.net/projects/lpg/] || [[LALR parser|Backtracking LALR(k)]] || [[Java (programming language)|Java]] || mixed || generated || [[Java Virtual Machine]] || no || [[Eclipse Public License|EPL]]
|-
|-
| [[LLgen]] || [http://freshmeat.net/projects/llgen/] || [[LL parser|LL(1)]] || [[C (programming language)|C]] || Mixed || External || [[POSIX]] || no || [[BSD]]
| [[LLgen]] || [http://freshmeat.net/projects/llgen/] || [[LL parser|LL(1)]] || [[C (programming language)|C]] || mixed || external || [[POSIX]] || no || [[BSD]]
|-
|-
| [[LLnextgen]] || [http://os.ghalkes.nl/LLnextgen/] || [[LL parser|LL(1)]] || [[C (programming language)|C]] || Mixed || External || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
| [[LLnextgen]] || [http://os.ghalkes.nl/LLnextgen/] || [[LL parser|LL(1)]] || [[C (programming language)|C]] || mixed || external || [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[LRGen]] || [http://lrgen.com/] || [[Canonical LR parser|LR(1)]] || [[C++]] || Separate || Generated || [[Microsoft Windows]] || no || [[Proprietary software|Proprietary]]
| [[LRGen]] || [http://lrgen.com/] || [[Canonical LR parser|LR(1)]] || [[C++]] || separate || generated || [[Microsoft Windows]] || no || [[Proprietary software|Proprietary]]
|-
|-
| [[Menhir (parser generator)|Menhir]] || [http://cristal.inria.fr/~fpottier/menhir/] || [[Canonical LR parser|LR(1)]] || [[Objective Caml|OCaml]] || Mixed || Generated || All || no || [[Q Public License|QPL]]
| [[Menhir (parser generator)|Menhir]] || [http://cristal.inria.fr/~fpottier/menhir/] || [[Canonical LR parser|LR(1)]] || [[Objective Caml|OCaml]] || mixed || generated || all || no || [[Q Public License|QPL]]
|-
|-
| [[Mini Parser Generator]] || [http://christophe.delord.free.fr/mp/index.html] || ? || [[Python (programming language)|Python]] || Mixed || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]]
| [[Mini Parser Generator]] || [http://christophe.delord.free.fr/mp/index.html] || ? || [[Python (programming language)|Python]] || mixed || generated || all || no || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[ML-Yacc]] || [http://www.smlnj.org/doc/ML-Yacc/] || [[LALR parser|LALR(1)]] || [[ML (programming language)|ML]] || Mixed || External || All || no || ?
| [[ML-Yacc]] || [http://www.smlnj.org/doc/ML-Yacc/] || [[LALR parser|LALR(1)]] || [[ML (programming language)|ML]] || mixed || external || all || no || ?
|-
|-
| [[Monkey]] || [http://sourceforge.net/projects/monkey/] || [[Canonical LR parser|LR(1)]] || [[Java (programming language)|Java]] || Separate || Generated || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
| [[Monkey]] || [http://sourceforge.net/projects/monkey/] || [[Canonical LR parser|LR(1)]] || [[Java (programming language)|Java]] || separate || generated || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[More Than Parsing]] || [http://babel.ls.fi.upm.es/research/mtp/] || [[LL parser|LL(1)]] || [[Java (programming language)|Java]] || Separate || Generated || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
| [[More Than Parsing]] || [http://babel.ls.fi.upm.es/research/mtp/] || [[LL parser|LL(1)]] || [[Java (programming language)|Java]] || separate || generated || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[MyL Programming Language]] || [http://blog.ronaldomoreira.com/myl/] || ? || [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[JScript]], [[Object Pascal]],[[SQL]] || Mixed || Generated || [[Microsoft Windows]] || no || [[Public domain]]
| [[MyL Programming Language]] || [http://blog.ronaldomoreira.com/myl/] || ? || [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[JScript]], [[Object Pascal]],[[SQL]] || mixed || generated || [[Microsoft Windows]] || no || [[Public domain]]
|-
|-
| [[ocamlyacc]] || [http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html] || [[LALR parser|LALR(1)]] || [[Objective Caml|OCaml]] || Mixed || External || All || no || [[Q Public License|QPL]]
| [[ocamlyacc]] || [http://caml.inria.fr/pub/docs/manual-ocaml/manual026.html] || [[LALR parser|LALR(1)]] || [[Objective Caml|OCaml]] || mixed || external || all || no || [[Q Public License|QPL]]
|-
|-
| [[olex]] || [http://www.irule.be/bvh/c++/olex/] || [[LL parser|LL(1)]] || [[C++]] || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
| [[olex]] || [http://www.irule.be/bvh/c++/olex/] || [[LL parser|LL(1)]] || [[C++]] || mixed || generated || all || no || [[GNU General Public License|GNU GPL]]
|-
| [[Parsec (parser)]]|| [http://legacy.cs.uu.nl/daan/parsec.html] || [[GLR parser|GLR]] || [[Haskell (programming language)|Haskell]] || Mixed || None || All || no || [[BSD licence|BSD]]
|-
|-
| [[Parse::Yapp]] || [http://freshmeat.net/projects/parse-yapp/] || [[LALR parser|LALR(1)]] || [[Perl]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
| [[Parsec (parser)]]|| [http://legacy.cs.uu.nl/daan/parsec.html] || [[GLR parser|GLR]] || [[Haskell (programming language)|Haskell]] || mixed || none || all || no || [[BSD licence|BSD]]
|-
|-
| [[Parser Objects]] || ? || [[LL parser|LL(k)]] || [[Java (programming language)|Java]] || Mixed || ? || [[Java Virtual Machine]] || no || [[Zlib license|zlib]]
| [[Parse::Yapp]] || [http://freshmeat.net/projects/parse-yapp/] || [[LALR parser|LALR(1)]] || [[Perl]] || mixed || external || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Python Lex-Yacc|PLY]] || [http://www.dabeaz.com/ply/] || [[LALR parser|LALR(1)]] || [[Python (programming language)|Python]] || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
| [[Parser Objects]] || ? || [[LL parser|LL(k)]] || [[Java (programming language)|Java]] || mixed || ? || [[Java Virtual Machine]] || no || [[Zlib license|zlib]]
|-
|-
| [[PRECC]] || [http://vl.fmnet.info/precc/] || [[LL parser|LL(k)]] || [[C (programming language)|C]]|| Separate || Generated || [[MS-DOS]], [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
| [[Python Lex-Yacc|PLY]] || [http://www.dabeaz.com/ply/] || [[LALR parser|LALR(1)]] || [[Python (programming language)|Python]] || mixed || generated || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[QLALR]] || [http://labs.trolltech.com/page/Projects/Compilers/QLALR] || [[LALR parser|LALR(1)]] || [[C++]] || Mixed || External || All || no || [[GNU General Public License|GNU GPL]]
| [[PRECC]] || [http://vl.fmnet.info/precc/] || [[LL parser|LL(k)]] || [[C (programming language)|C]]|| separate || generated || [[MS-DOS]], [[POSIX]] || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[SableCC]] || [http://sablecc.org/] || [[LALR parser|LALR]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Objective Caml|OCaml]], [[Python (programming language)|Python]] || Separate || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]]
| [[QLALR]] || [http://labs.trolltech.com/page/Projects/Compilers/QLALR] || [[LALR parser|LALR(1)]] || [[C++]] || mixed || external || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[SmaCC]] || [http://refactory.com/Software/SmaCC/] || [[LALR parser|LALR(1)]], [[Canonical LR parser|LR(1)]] || [[Smalltalk]] || Mixed || Internal || All || yes || [[MIT license|MIT]]
| [[SableCC]] || [http://sablecc.org/] || [[LALR parser|LALR]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Objective Caml|OCaml]], [[Python (programming language)|Python]] || separate || generated || all || no || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[SLK (parser generator)|SLK]] || [http://home.earthlink.net/~slkpg/] || [[LL parser|LL(k)]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] || Separate || External || All || no || [[Proprietary software|Proprietary]]
| [[SmaCC]] || [http://refactory.com/Software/SmaCC/] || [[LALR parser|LALR(1)]], [[Canonical LR parser|LR(1)]] || [[Smalltalk]] || mixed || internal || all || yes || [[MIT license|MIT]]
|-
|-
| [[SPARK (parser generator)|SPARK]] || [http://pages.cpsc.ucalgary.ca/~aycock/spark/] || [[Earley Parser|Earley]] || [[Python (programming language)|Python]] || Mixed || External || All || no || [[MIT license|MIT]]
| [[SLK (parser generator)|SLK]] || [http://home.earthlink.net/~slkpg/] || [[LL parser|LL(k)]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] || separate || external || all || no || [[Proprietary software|Proprietary]]
|-
|-
| [[Spirit Parser Framework|Spirit]] || [http://spirit.sourceforge.net/] || [[LL parser|LL(k)]] || [[C++]] || Mixed || Internal || All || no || [[Boost]]
| [[SPARK (parser generator)|SPARK]] || [http://pages.cpsc.ucalgary.ca/~aycock/spark/] || [[Earley Parser|Earley]] || [[Python (programming language)|Python]] || mixed || external || all || no || [[MIT license|MIT]]
|-
|-
| [[Styx]] || [http://sourceforge.net/projects/xstyx/] || ? || [[C (programming language)|C]] || Mixed || Generated || ? || All || [[GNU Lesser General Public License|GNU LGPL]]
| [[Spirit Parser Framework|Spirit]] || [http://spirit.sourceforge.net/] || [[LL parser|LL(k)]] || [[C++]] || mixed || internal || all || no || [[Boost]]
|-
|-
| [[Tap]] || [http://tap.sourceforge.net/] || [[LL parser|LL(1)]] || [[C++]] || Mixed || Generated || All || no || [[GNU General Public License|GNU GPL]]
| [[Styx]] || [http://sourceforge.net/projects/xstyx/] || ? || [[C (programming language)|C]] || mixed || generated || ? || all || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[TextTransformer]] || [http://texttransformer.com/] || [[LL parser|LL(k)]] || [[C++]] || Mixed || Generated || [[Microsoft Windows]] || yes || [[Proprietary software|Proprietary]]
| [[Tap]] || [http://tap.sourceforge.net/] || [[LL parser|LL(1)]] || [[C++]] || mixed || generated || all || no || [[GNU General Public License|GNU GPL]]
|-
|-
| [[Tom]] || [http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/nlp/parsing/tom/0.html] || [[GLR parser|GLR]] || [[C (programming language)|C]] || Generated || None || All || no || [[Proprietary software|Proprietary]]
| [[TextTransformer]] || [http://texttransformer.com/] || [[LL parser|LL(k)]] || [[C++]] || mixed || generated || [[Microsoft Windows]] || yes || [[Proprietary software|Proprietary]]
|-
| [[Tom]] || [http://www-2.cs.cmu.edu/afs/cs/project/ai-repository/ai/areas/nlp/parsing/tom/0.html] || [[GLR parser|GLR]] || [[C (programming language)|C]] || generated || none || all || no || [[Proprietary software|Proprietary]]
|-
|-
| [[TinyPG]] || [http://www.codeproject.com/KB/recipes/TinyPG.aspx] || [[LL(1)]] || [[C Sharp (programming language)|C#]], [[Visual Basic]] || ? || ? || [[Microsoft Windows]] || yes || [http://www.codeproject.com/info/cpol10.aspx CPOL 1.0]
| [[TinyPG]] || [http://www.codeproject.com/KB/recipes/TinyPG.aspx] || [[LL(1)]] || [[C Sharp (programming language)|C#]], [[Visual Basic]] || ? || ? || [[Microsoft Windows]] || yes || [http://www.codeproject.com/info/cpol10.aspx CPOL 1.0]
|-
|-
| [[Toy Parser Generator]] || [http://christophe.delord.free.fr/tpg/] || [[Recursive descent parser|Recursive Descent]] || [[Python (programming language)|Python]] || Mixed || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]]
| [[Toy Parser Generator]] || [http://christophe.delord.free.fr/tpg/] || [[Recursive descent parser|Recursive Descent]] || [[Python (programming language)|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 parser|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 parser|LALR(1)]] || [[Turbo Pascal]] || mixed || external || all || yes || [[GNU General Public License|GNU GPL]]
|-
|-
| [[ultragram|UltraGram]] || [http://www.ultragram.com] || [[LALR parser|LALR]], [[LR parser|LR]], [[GLR parser|GLR]] || [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Visual Basic .NET]] || Separate || Generated || [[Microsoft Windows]] || yes || [[Proprietary software|Proprietary]]
| [[ultragram|UltraGram]] || [http://www.ultragram.com] || [[LALR parser|LALR]], [[LR parser|LR]], [[GLR parser|GLR]] || [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]], [[Visual Basic .NET]] || separate || generated || [[Microsoft Windows]] || yes || [[Proprietary software|Proprietary]]
|-
|-
<!-- Other programming languages are maybe also supported. -->
<!-- Other programming languages are maybe also supported. -->
| [[yacc|Yacc (AT&T)]] || ? || [[LALR parser|LALR]] || [[C (programming language)|C]] || Mixed || External || [[POSIX]] || no || [[Proprietary software|Proprietary]]
| [[yacc|Yacc (AT&T)]] || ? || [[LALR parser|LALR]] || [[C (programming language)|C]] || mixed || external || [[POSIX]] || no || [[Proprietary software|Proprietary]]
|-
|-
| [[Yacc++]] || [http://world.std.com/~compres/] || [[LR parser|LR(k)]], [[LALR parser|LALR(k)]] || [[C++]], [[C Sharp (programming language)|C#]] || Mixed || Generated or External || All || no || [[Proprietary software|Proprietary]]
| [[Yacc++]] || [http://world.std.com/~compres/] || [[LR parser|LR(k)]], [[LALR parser|LALR(k)]] || [[C++]], [[C Sharp (programming language)|C#]] || mixed || generated or external || all || no || [[Proprietary software|Proprietary]]
|-
|-
| [[Yapps]] || [http://theory.stanford.edu/~amitp/yapps/] || [[LL parser|LL(1)]] || [[Python (programming language)|Python]] || Mixed || Generated || All || no || [[MIT license|MIT]]
| [[Yapps]] || [http://theory.stanford.edu/~amitp/yapps/] || [[LL parser|LL(1)]] || [[Python (programming language)|Python]] || mixed || generated || all || no || [[MIT license|MIT]]
|-
|-
| [[yecc]] || [http://www.erlang.org/faq/parsing.html] || [[LALR parser|LALR(1)]] || [[Erlang (programming language)|Erlang]] || Separate || Generated || All || no || [[Erlang (programming language)|Erlang]]
| [[yecc]] || [http://www.erlang.org/faq/parsing.html] || [[LALR parser|LALR(1)]] || [[Erlang (programming language)|Erlang]] || separate || generated || all || no || [[Erlang (programming language)|Erlang]]
|-
|-
| [[Visual BNF]] || [http://intralogic.eu/] || [[Canonical LR parser|LR(1)]], [[LALR parser|LALR(1)]] || [[C Sharp (programming language)|C#]] || Separate || Generated || [[.NET Framework]] || yes || [[Proprietary software|Proprietary]]
| [[Visual BNF]] || [http://intralogic.eu/] || [[Canonical LR parser|LR(1)]], [[LALR parser|LALR(1)]] || [[C Sharp (programming language)|C#]] || separate || generated || [[.NET Framework]] || yes || [[Proprietary software|Proprietary]]
|-
|-
| [[Visual Parse++]] || [http://sand-stone.com/] || [[LALR parser|LALR]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] || Separate || Generated || [[Microsoft Windows]] || yes || [[Proprietary software|Proprietary]]
| [[Visual Parse++]] || [http://sand-stone.com/] || [[LALR parser|LALR]] || [[C (programming language)|C]], [[C++]], [[C Sharp (programming language)|C#]], [[Java (programming language)|Java]] || separate || generated || [[Microsoft Windows]] || yes || [[Proprietary software|Proprietary]]
|-
|-
| [[YooParse]] || [http://yooparse.sourceforge.net/] || [[LR parser|LR]] || [[C++]] || Mixed || External || All || no || [[MIT license|MIT]]
| [[YooParse]] || [http://yooparse.sourceforge.net/] || [[LR parser|LR]] || [[C++]] || mixed || external || all || no || [[MIT license|MIT]]
|-
|-
| [[Whale (parser generator)|Whale]] || [http://users.utu.fi/aleokh/whale/] || [[LR parser|LR]] || [[C++]] || Mixed || External || All || no || [[Proprietary software|Proprietary]]
| [[Whale (parser generator)|Whale]] || [http://users.utu.fi/aleokh/whale/] || [[LR parser|LR]] || [[C++]] || mixed || external || all || no || [[Proprietary software|Proprietary]]
|-
|-
| [[Wisent]] || [http://sourceforge.net/projects/wisent/] || [[LALR parser|LALR(1)]] || [[C++]], [[Java (programming language)|Java]] || Mixed || External || [[Java Virtual Machine]] || no || [[GNU General Public License|GNU GPL]]
| [[Wisent]] || [http://sourceforge.net/projects/wisent/] || [[LALR parser|LALR(1)]] || [[C++]], [[Java (programming language)|Java]] || mixed || external || [[Java Virtual Machine]] || no || [[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]]
! Product !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! [[Lexical analyzer|Lexer]] !! Development Platform !! [[Integrated Development Environment|IDE]] !! [[Software license|License]]
Line 206: Line 206:
! Name !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! Development Platform !! [[Software license|License]]
! Name !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! Development Platform !! [[Software license|License]]
|-
|-
| [[Aurochs (parser generator)|Aurochs]] || [http://aurochs.fr] || Packrat || [[C (programming language)|C]], [[Objective Caml|OCaml]], [[Java (programming language)|Java]] || Mixed || All || [[GNU General Public License|GNU GPL]]
| [[Aurochs (parser generator)|Aurochs]] || [http://aurochs.fr] || Packrat || [[C (programming language)|C]], [[Objective Caml|OCaml]], [[Java (programming language)|Java]] || mixed || all || [[GNU General Public License|GNU GPL]]
|-
|-
| [[CL-peg]] || [http://common-lisp.net/project/cl-peg/] || Packrat || [[Common Lisp]] || Mixed || All || [[MIT license|MIT]]
| [[CL-peg]] || [http://common-lisp.net/project/cl-peg/] || Packrat || [[Common Lisp]] || mixed || all || [[MIT license|MIT]]
|-
|-
| [[Drat!]] || [http://wiki.dprogramming.com/Drat/HomePage/] || Packrat || [[D (programming language)|D]] || Mixed || All || [[GNU General Public License|GNU GPL]]
| [[Drat!]] || [http://wiki.dprogramming.com/Drat/HomePage/] || Packrat || [[D (programming language)|D]] || mixed || all || [[GNU General Public License|GNU GPL]]
|-
|-
| [[F Sharp PegParser|F# PegParser]] || [http://devhawk.net/2007/12/10/Practical+Parsing+In+F.aspx] || Packrat || [[F Sharp (programming language)|F#]] || Mixed || [[.NET Framework]] || [[Proprietary software|Proprietary]]
| [[F Sharp PegParser|F# PegParser]] || [http://devhawk.net/2007/12/10/Practical+Parsing+In+F.aspx] || Packrat || [[F Sharp (programming language)|F#]] || mixed || [[.NET Framework]] || [[Proprietary software|Proprietary]]
|-
|-
| [[Frisby (library)|Frisby]] || [http://repetae.net/computer/frisby/] || Packrat || [[Haskell (programming language)|Haskell]] || Mixed || All || [[BSD licenses|BSD]]
| [[Frisby (library)|Frisby]] || [http://repetae.net/computer/frisby/] || Packrat || [[Haskell (programming language)|Haskell]] || mixed || all || [[BSD licenses|BSD]]
|-
|-
| [[tcllib|grammar::peg]] || [http://tcllib.sourceforge.net/doc/peg.html] || Packrat || [[Tcl]] || Mixed || All || [[BSD licenses|BSD]]
| [[tcllib|grammar::peg]] || [http://tcllib.sourceforge.net/doc/peg.html] || Packrat || [[Tcl]] || mixed || all || [[BSD licenses|BSD]]
|-
|-
| [[LPeg]] || [http://www.inf.puc-rio.br/~roberto/lpeg/] || Parsing Machine || [[Lua (programming language)|Lua]] || Mixed || All || [[MIT license|MIT]]
| [[LPeg]] || [http://www.inf.puc-rio.br/~roberto/lpeg/] || Parsing Machine || [[Lua (programming language)|Lua]] || mixed || all || [[MIT license|MIT]]
|-
|-
| [[Narwhal (parser generator)|Narwhal]] || [http://sourceforge.net/projects/narwhal/] || Packrat || [[C (programming language)|C]] || Mixed || [[POSIX]], [[Microsoft Windows]] || [[BSD licenses|BSD]]
| [[Narwhal (parser generator)|Narwhal]] || [http://sourceforge.net/projects/narwhal/] || Packrat || [[C (programming language)|C]] || mixed || [[POSIX]], [[Microsoft Windows]] || [[BSD licenses|BSD]]
|-
|-
| [[NPEG]] || [http://www.codeplex.com/NPEG] || Recursive Descent || [[C Sharp (programming language)|C#]] || Mixed || All || [[MIT license|MIT]]
| [[NPEG]] || [http://www.codeplex.com/NPEG] || Recursive Descent || [[C Sharp (programming language)|C#]] || mixed || all || [[MIT license|MIT]]
|-
|-
| [[OMeta]] || [http://www.cs.ucla.edu/~awarth/ometa/] || ? || [[JavaScript]], [[Squeak]] || Mixed || All || [[MIT license|MIT]]
| [[OMeta]] || [http://www.cs.ucla.edu/~awarth/ometa/] || ? || [[JavaScript]], [[Squeak]] || mixed || all || [[MIT license|MIT]]
|-
|-
| [[Packrat (library)|Packrat]] || [http://www.call-with-current-continuation.org/eggs/packrat.html] || Packrat || [[Scheme (programming language)|Scheme]] || Mixed || All || [[MIT license|MIT]]
| [[Packrat (library)|Packrat]] || [http://www.call-with-current-continuation.org/eggs/packrat.html] || Packrat || [[Scheme (programming language)|Scheme]] || mixed || all || [[MIT license|MIT]]
|-
|-
| [[Pappy]] || [http://pdos.csail.mit.edu/~baford/packrat/thesis/] || Packrat || [[Haskell (programming language)|Haskell]] || Mixed || All || [[Proprietary software|Proprietary]]
| [[Pappy]] || [http://pdos.csail.mit.edu/~baford/packrat/thesis/] || Packrat || [[Haskell (programming language)|Haskell]] || mixed || all || [[Proprietary software|Proprietary]]
|-
|-
| [[parsepp]] || [http://fossil.wanderinghorse.net/repos/parsepp/index.cgi/wiki/parsepp] || ? || [[C++]] || Mixed || All || [[Public Domain]]
| [[parsepp]] || [http://fossil.wanderinghorse.net/repos/parsepp/index.cgi/wiki/parsepp] || ? || [[C++]] || mixed || all || [[Public Domain]]
|-
|-
| [[Parsnip Parser Library|Parsnip]] || [http://parsnip-parser.sourceforge.net/] || Packrat || [[C++]] || Mixed || [[Microsoft Windows]] || [[GNU General Public License|GNU GPL]]
| [[Parsnip Parser Library|Parsnip]] || [http://parsnip-parser.sourceforge.net/] || Packrat || [[C++]] || mixed || [[Microsoft Windows]] || [[GNU General Public License|GNU GPL]]
|-
|-
| [[peg (parser generator)|peg]] || [http://piumarta.com/software/peg/] || Recursive Descent || [[C (programming language)|C]], [[C++]] || Mixed || All || [[MIT license|MIT]]
| [[peg (parser generator)|peg]] || [http://piumarta.com/software/peg/] || Recursive Descent || [[C (programming language)|C]], [[C++]] || mixed || all || [[MIT license|MIT]]
|-
|-
| [[pegc]] || [http://fossil.wanderinghorse.net/repos/pegc/index.cgi/index] || ? || [[C (programming language)|C]] || Mixed || All || [[Public Domain]]
| [[pegc]] || [http://fossil.wanderinghorse.net/repos/pegc/index.cgi/index] || ? || [[C (programming language)|C]] || mixed || all || [[Public Domain]]
|-
|-
| [[Parsing Expression Grammar Template Library|PEGTL]] || [http://code.google.com/p/pegtl/] || Recursive Descent || [[C++0x]] || Mixed || [[POSIX]] || [[MIT license|MIT]]
| [[Parsing Expression Grammar Template Library|PEGTL]] || [http://code.google.com/p/pegtl/] || Recursive Descent || [[C++0x]] || mixed || [[POSIX]] || [[MIT license|MIT]]
|-
|-
| [[Parser Grammar Engine|PGE]] || ? || Recursive Descent || [[Parrot virtual machine|Parrot bytecode]] || Mixed || [[Parrot virtual machine]] || ?
| [[Parser Grammar Engine|PGE]] || ? || Recursive Descent || [[Parrot virtual machine|Parrot bytecode]] || mixed || [[Parrot virtual machine]] || ?
|-
|-
| [[PyPy|PyPy rlib]] || [http://codespeak.net/pypy/dist/pypy/doc/rlib.html#parsing] || Packrat || [[Python (programming language)|Python]] || Mixed || All || [[MIT license|MIT]]
| [[PyPy|PyPy rlib]] || [http://codespeak.net/pypy/dist/pypy/doc/rlib.html#parsing] || Packrat || [[Python (programming language)|Python]] || mixed || all || [[MIT license|MIT]]
|-
|-
| [[Rats!]] || [http://cs.nyu.edu/rgrimm/xtc/rats.html] || Packrat || [[Java (programming language)|Java]] || Mixed || [[Java Virtual Machine]] || [[GNU Lesser General Public License|GNU LGPL]]
| [[Rats!]] || [http://cs.nyu.edu/rgrimm/xtc/rats.html] || Packrat || [[Java (programming language)|Java]] || mixed || [[Java Virtual Machine]] || [[GNU Lesser General Public License|GNU LGPL]]
|-
|-
| [[Treetop]] || [http://treetop.rubyforge.org/] || Recusive Descent || [[Ruby (programming language)|Ruby]] || Mixed || All || ?
| [[Treetop]] || [http://treetop.rubyforge.org/] || Recusive Descent || [[Ruby (programming language)|Ruby]] || mixed || all || ?
|-
|-
| [[Yard]] || [http://code.google.com/p/yardparser/] || Recursive Descent || [[C++]] || Mixed || All || [[MIT license|MIT]] or [[Public Domain]]
| [[Yard]] || [http://code.google.com/p/yardparser/] || Recursive Descent || [[C++]] || mixed || all || [[MIT license|MIT]] or [[Public Domain]]
|}
|}


Line 255: Line 255:
! Name !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! [[Lexical analyzer|Lexer]] !! Development Platform !! [[Software license|License]]
! Name !! [[Website]] !! [[Parsing|Parsing Algorithm]] !! [[Programming language|Output Languages]] !! Grammar / Code !! [[Lexical analyzer|Lexer]] !! Development Platform !! [[Software license|License]]
|-
|-
| [[Whale Calf]] || [http://users.utu.fi/aleokh/whalecalf/] || [[Parsing table|General Tabular]], [[LL parser|SLL(k)]], Linear Normal Form ([[Conjunctive grammar]]s), [[LR parser|LR]], Binary Normal Form ([[Boolean grammar]]s) || [[C++]] || Separate || External || All || [[Proprietary software|Proprietary]]
| [[Whale Calf]] || [http://users.utu.fi/aleokh/whalecalf/] || [[Parsing table|General Tabular]], [[LL parser|SLL(k)]], Linear Normal Form ([[Conjunctive grammar]]s), [[LR parser|LR]], Binary Normal Form ([[Boolean grammar]]s) || [[C++]] || separate || external || all || [[Proprietary software|Proprietary]]
|-
|-
| [[Scannerless Boolean Parser]] || [http://research.cs.berkeley.edu/project/sbp/] || [[Scannerless parsing|Scannerless GLR]] ([[Boolean grammar]]s) || [[Haskell (programming language)|Haskell]], [[Java (programming language)|Java]] || Separate || None || [[Java Virtual Machine]] || [[BSD licenses|BSD]]
| [[Scannerless Boolean Parser]] || [http://research.cs.berkeley.edu/project/sbp/] || [[Scannerless parsing|Scannerless GLR]] ([[Boolean grammar]]s) || [[Haskell (programming language)|Haskell]], [[Java (programming language)|Java]] || separate || none || [[Java Virtual Machine]] || [[BSD licenses|BSD]]
|}
|}


Line 265: Line 265:
* [[Compiler-compiler]]
* [[Compiler-compiler]]


==External links==
==external links==
* [http://catalog.compilertools.net/lexparse.html The Catalog of Compiler Construction Tools]
* [http://catalog.compilertools.net/lexparse.html The Catalog of Compiler Construction Tools]
* [http://wiki.python.org/moin/LanguageParsing Python Language Parsing]
* [http://wiki.python.org/moin/LanguageParsing Python Language Parsing]

Revision as of 11:06, 25 December 2008

This is a list of notable parser generators for various language classes.

Regular languages

Name Website Parsing Algorithm Output Languages Grammar / Code Development Platform License
Dolphin [1] DFA C++ separate all Proprietary
flex [2] DFA C mixed all GNU GPL
JFlex [3] ? Java ? Java Virtual Machine GNU GPL
JLex [4] ? Java ? Java Virtual Machine ?
lex ? DFA C mixed POSIX Proprietary
Quex [5] DFA C++ mixed all GNU LGPL
Ragel [6] DFA C, C++, D, Java, Objective-C, Ruby mixed all GNU GPL
re2c [7] DFA C mixed all MIT
Russ Cox's regular expression implementations [8] DFA, NFA Bytecode, x86 assembly language, interpreted separate all MIT

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
JetPAG [45] LL(k) C++ mixed generated all no GNU GPL
JS/CC [46] LALR(1) JavaScript, JScript, ECMAScript mixed internal all yes Artistic
Kelbt [47] Backtracking LALR(1) C++ mixed generated POSIX no GNU GPL
kmyacc [48] LALR(1) C, Java, Perl, JavaScript mixed external all no GNU GPL
Lapg [49] LALR C, C++, C#, Java, JavaScript mixed generated Java Virtual Machine no GNU GPL
Lemon [50] LALR C mixed external all no Public domain
Lime [51] LALR(1) PHP mixed external all no GNU GPL
LISA [52] LR, LL, LALR, SLR Java mixed generated Java Virtual Machine yes Public Domain
LPG [53] Backtracking LALR(k) Java mixed generated Java Virtual Machine no EPL
LLgen [54] LL(1) C mixed external POSIX no BSD
LLnextgen [55] LL(1) C mixed external POSIX no GNU GPL
LRGen [56] LR(1) C++ separate generated Microsoft Windows no Proprietary
Menhir [57] LR(1) OCaml mixed generated all no QPL
Mini Parser Generator [58] ? Python mixed generated all no GNU LGPL
ML-Yacc [59] LALR(1) ML mixed external all no ?
Monkey [60] LR(1) Java separate generated Java Virtual Machine no GNU GPL
More Than Parsing [61] LL(1) Java separate generated Java Virtual Machine no GNU GPL
MyL Programming Language [62] ? C#, Java, JScript, Object Pascal,SQL mixed generated Microsoft Windows no Public domain
ocamlyacc [63] LALR(1) OCaml mixed external all no QPL
olex [64] LL(1) C++ mixed generated all no GNU GPL
Parsec (parser) [65] GLR Haskell mixed none all no BSD
Parse::Yapp [66] LALR(1) Perl mixed external all no GNU GPL
Parser Objects ? LL(k) Java mixed ? Java Virtual Machine no zlib
PLY [67] LALR(1) Python mixed generated all no GNU GPL
PRECC [68] LL(k) C separate generated MS-DOS, POSIX no GNU GPL
QLALR [69] LALR(1) C++ mixed external all no GNU GPL
SableCC [70] LALR C, C++, C#, Java, OCaml, Python separate generated all no GNU LGPL
SmaCC [71] LALR(1), LR(1) Smalltalk mixed internal all yes MIT
SLK [72] LL(k) C, C++, C#, Java separate external all no Proprietary
SPARK [73] Earley Python mixed external all no MIT
Spirit [74] LL(k) C++ mixed internal all no Boost
Styx [75] ? C mixed generated ? all GNU LGPL
Tap [76] LL(1) C++ mixed generated all no GNU GPL
TextTransformer [77] LL(k) C++ mixed generated Microsoft Windows yes Proprietary
Tom [78] GLR C generated none all no Proprietary
TinyPG [79] LL(1) C#, Visual Basic ? ? Microsoft Windows yes CPOL 1.0
Toy Parser Generator [80] Recursive Descent Python mixed generated all no GNU LGPL
TP Yacc [81] LALR(1) Turbo Pascal mixed external all yes GNU GPL
UltraGram [82] 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++ [83] LR(k), LALR(k) C++, C# mixed generated or external all no Proprietary
Yapps [84] LL(1) Python mixed generated all no MIT
yecc [85] LALR(1) Erlang separate generated all no Erlang
Visual BNF [86] LR(1), LALR(1) C# separate generated .NET Framework yes Proprietary
Visual Parse++ [87] LALR C, C++, C#, Java separate generated Microsoft Windows yes Proprietary
YooParse [88] LR C++ mixed external all no MIT
Whale [89] LR C++ mixed external all no Proprietary
Wisent [90] 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

Name Website Parsing Algorithm Output Languages Grammar / Code Development Platform License
Aurochs [91] Packrat C, OCaml, Java mixed all GNU GPL
CL-peg [92] Packrat Common Lisp mixed all MIT
Drat! [93] Packrat D mixed all GNU GPL
F# PegParser [94] Packrat F# mixed .NET Framework Proprietary
Frisby [95] Packrat Haskell mixed all BSD
grammar::peg [96] Packrat Tcl mixed all BSD
LPeg [97] Parsing Machine Lua mixed all MIT
Narwhal [98] Packrat C mixed POSIX, Microsoft Windows BSD
NPEG [99] Recursive Descent C# mixed all MIT
OMeta [100] ? JavaScript, Squeak mixed all MIT
Packrat [101] Packrat Scheme mixed all MIT
Pappy [102] Packrat Haskell mixed all Proprietary
parsepp [103] ? C++ mixed all Public Domain
Parsnip [104] Packrat C++ mixed Microsoft Windows GNU GPL
peg [105] Recursive Descent C, C++ mixed all MIT
pegc [106] ? C mixed all Public Domain
PEGTL [107] Recursive Descent C++0x mixed POSIX MIT
PGE ? Recursive Descent Parrot bytecode mixed Parrot virtual machine ?
PyPy rlib [108] Packrat Python mixed all MIT
Rats! [109] Packrat Java mixed Java Virtual Machine GNU LGPL
Treetop [110] Recusive Descent Ruby mixed all ?
Yard [111] Recursive Descent C++ mixed all MIT or Public Domain

Miscellaneous language classes

Name Website Parsing Algorithm Output Languages Grammar / Code Lexer Development Platform License
Whale Calf [112] General Tabular, SLL(k), Linear Normal Form (Conjunctive grammars), LR, Binary Normal Form (Boolean grammars) C++ separate external all Proprietary
Scannerless Boolean Parser [113] Scannerless GLR (Boolean grammars) Haskell, Java separate none Java Virtual Machine BSD

See also