Comparison of parser generators: Difference between revisions
Appearance
Content deleted Content added
m →Context-free languages: correct typo |
add other language classes |
||
Line 1: | Line 1: | ||
This is a list of notable [[parser generators]]. |
This is a list of notable [[parser generators]]. |
||
== |
== Regular languages == |
||
{| class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto;" |
{| class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto;" |
||
! |
! 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]] || [[C++]] || Separated || All || no || [[GNU General Public License|GNU GPL]] |
|||
|- |
|||
| [[Ragel]] || [http://www.complang.org/ragel/] || [[Deterministic finite state machine]] || [[C (programming language)|C]], [[C++]], [[D (programming language)|D]], [[Java (programming language)|Java]], [[Objective-C]], [[Ruby (programming language)|Ruby]] || Mixed || All || no || [[GNU General Public License|GNU GPL]] |
|||
|} |
|||
== Context-free languages == |
|||
{| class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto;" |
|||
! 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]] |
||
Line 132: | Line 141: | ||
|- |
|- |
||
| [[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)]] || Separate || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]] |
| [[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)]] || Separate || Generated || All || no || [[GNU Lesser General Public License|GNU LGPL]] |
||
⚫ | |||
⚫ | | [[Scannerless Boolean Parser]] || [http://research.cs.berkeley.edu/project/sbp/] || [[Scannerless parsing|Scannerless GLR]] ([[Boolean grammar |
||
|- |
|- |
||
| [[SmaCC]] || [http://refactory.com/Software/SmaCC/] || [[LALR parser|LALR(1)]], [[Canonical LR parser|LR(1)]] || [[Smalltalk]] || Mixed || Internal || All || yes || [[MIT license|MIT]] |
| [[SmaCC]] || [http://refactory.com/Software/SmaCC/] || [[LALR parser|LALR(1)]], [[Canonical LR parser|LR(1)]] || [[Smalltalk]] || Mixed || Internal || All || yes || [[MIT license|MIT]] |
||
Line 172: | Line 179: | ||
| [[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 |
| [[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]] |
||
|- |
|||
| [[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 181: | Line 190: | ||
==Parsing Expression Grammars== |
==Parsing Expression Grammars== |
||
{| class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto;" |
{| class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto;" |
||
! |
! 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]] |
||
Line 226: | Line 235: | ||
|- |
|- |
||
| [[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]] |
||
|} |
|||
== Miscellaneous language classes == |
|||
{| class="wikitable sortable" style="text-align: center; font-size: 85%; width: auto;" |
|||
! 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]] |
|||
|- |
|||
⚫ | | [[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]] |
||
|} |
|} |
||
Revision as of 16:06, 24 December 2008
This is a list of notable parser generators.
Regular languages
Name | Website | Parsing Algorithm | Output Languages | Grammar / Code | Development Platform | License | |
---|---|---|---|---|---|---|---|
Dolphin | [1] | Deterministic finite state machine | C++ | Separated | All | no | GNU GPL |
Ragel | [2] | Deterministic finite state machine | C, C++, D, Java, Objective-C, Ruby | Mixed | All | no | GNU GPL |
Context-free languages
Parsing Expression Grammars
Miscellaneous language classes
Name | Website | Parsing Algorithm | Output Languages | Grammar / Code | Lexer | Development Platform | License |
---|---|---|---|---|---|---|---|
Whale Calf | [106] | General Tabular, SLL(k), Linear Normal Form (Conjunctive grammars), LR, Binary Normal Form (Boolean grammars) | C++ | Separate | External | All | Proprietary |
Scannerless Boolean Parser | [107] | Scannerless GLR (Boolean grammars) | Haskell, Java | Separate | None | Java Virtual Machine | BSD |
See also
- Context-free language
- Parsing expression grammar
- List of compilers
- Parsers
- Lexical analysis
- Compiler-compiler