Comparison of parser generators: Difference between revisions
Appearance
Content deleted Content added
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++]] || |
| [[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]] || |
| [[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]] || |
| [[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++]] || |
| [[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]] || |
| [[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]] || |
| [[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 || |
| 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]] || |
| [[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]] || |
| [[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++]] || |
| [[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]] || |
| [[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++]] || |
| [[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]] || |
| [[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++]] || |
| [[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++]] || |
| [[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++]] || |
| [[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++]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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++]] || |
| [[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++]] || |
| [[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#]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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++]] || |
| [[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#]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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++]] || |
| [[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]] || |
| [[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++]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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++]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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++]] || |
| [[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]] |
||
|- |
|- |
||
| [[ |
| [[Parser Objects]] || ? || [[LL parser|LL(k)]] || [[Java (programming language)|Java]] || mixed || ? || [[Java Virtual Machine]] || no || [[Zlib license|zlib]] |
||
|- |
|- |
||
| [[ |
| [[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]] |
||
|- |
|- |
||
| [[ |
| [[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]] |
||
|- |
|- |
||
| [[ |
| [[QLALR]] || [http://labs.trolltech.com/page/Projects/Compilers/QLALR] || [[LALR parser|LALR(1)]] || [[C++]] || mixed || external || all || 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]] |
||
|- |
|- |
||
| [[ |
| [[SmaCC]] || [http://refactory.com/Software/SmaCC/] || [[LALR parser|LALR(1)]], [[Canonical LR parser|LR(1)]] || [[Smalltalk]] || mixed || internal || all || yes || [[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]] |
||
|- |
|- |
||
| [[ |
| [[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]] |
||
|- |
|- |
||
| [[ |
| [[Spirit Parser Framework|Spirit]] || [http://spirit.sourceforge.net/] || [[LL parser|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]] |
||
|- |
|- |
||
| [[ |
| [[Tap]] || [http://tap.sourceforge.net/] || [[LL parser|LL(1)]] || [[C++]] || mixed || generated || all || no || [[GNU General Public License|GNU GPL]] |
||
|- |
|- |
||
| [[ |
| [[TextTransformer]] || [http://texttransformer.com/] || [[LL parser|LL(k)]] || [[C++]] || mixed || generated || [[Microsoft Windows]] || yes || [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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#]] || |
| [[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]] || |
| [[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]] || |
| [[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#]] || |
| [[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]] || |
| [[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++]] || |
| [[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++]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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#]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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#]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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++]] || |
| [[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++]] || |
| [[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++]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[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]] || |
| [[Treetop]] || [http://treetop.rubyforge.org/] || Recusive Descent || [[Ruby (programming language)|Ruby]] || mixed || all || ? |
||
|- |
|- |
||
| [[Yard]] || [http://code.google.com/p/yardparser/] || Recursive Descent || [[C++]] || |
| [[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++]] || |
| [[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]] || |
| [[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== |
||
* [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
Parsing Expression Grammars
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 |