|
Lexer and Parser Generators
|
Summary |
|
Published Papers |
|
Source Code |
|
Manuals |
|
AFLEX & AYACC
ATS
Summary |
Generates table-driven LL(1) parsers with full
insert-only error recovery. It also handles full left-attribute
semantic handling, which is a dream compared to using YACC's parser
actions. |
Published Papers |
|
Source Code |
|
Manuals |
|
Summary |
This is another parser generator by Berkeley that is
very similar to YACC. |
Published Papers |
|
Source Code |
Click here to obtain BISON |
Manuals |
|
Summary |
C++-ized version of BISON. E-mail author Alain Coetmeur. |
Published Papers |
|
Source Code |
Found in this ftp directory. |
Manuals |
Download
some documentation. |
Summary |
Coco/R reads an attributed EBNF grammar of a
language and translates it into a recursive descent parser and a
scanner for that language. Using Coco/R, compilers can be
generated that are as efficient as hand-coded and carefully
optimized production quality compilers. Almost as important as
efficiency is the simplicity and adequacy of the system.
Programmers are not willing to use a tool if it does not come in
handy to their work, if it uses an arcane notation or a bulk of
options and special cases. Coco/R puts simplicity and efficiency
over power. |
Published Papers |
Click here to find papers |
Source Code |
Click here to obtain COCO |
Manuals |
Click here for manual |
Summary |
A top-down parser generator that supports
specifications in a style similar to syntax-directed translation
schemes. The specification language is based on EBNF. Depot4 is
intended for use by non-experts implementing domain-specific
languages. |
Published Papers |
Scroll down this
site to find papers |
Source Code |
DEPOT4/Oberon
DEPOT4/Java |
Manuals |
Click
here for documentation |
Summary |
The Extended Affix Grammar formalism, or shortly
EAG, is a formalism for describing both the context free and the
context sensitive syntax of languages. EAG is a member of the
family of two-level grammars. They are very closely related to
two-level van Wijngaarden grammars. The EAG compiler will
generate either a recognizer or a transducer or a translator or a
syntax directed editor for a language described in the EAG
formalism. |
Published Papers |
E-mail the author
to find out about published papers |
Source Code |
Click here to obtain EAG |
Manuals |
Click here for manuals |
Summary |
C++-ized version of FLEX. E-mail author Alain Coetmeur. |
Published Papers |
|
Source Code |
Found in this ftp directory. |
Manuals |
Download
some documentation. |
Summary |
Gray is a parser generator written in Forth. It
takes grammars in an extended BNF and produces executable Forth code
for recursive descent parsers. |
Published Papers |
Here's one, but it's in German. |
Source Code |
Download the source code for version 4. |
Manuals |
Some documentation with the source code. |
Summary |
Ibpag2 is a parser generator for Icon. It does most
of what you would expect. Latest version can handle both SLR(1) and
even GLR (Tomita) grammars. |
Published Papers |
|
Source Code |
Ibpag2 is in comp.sources.misc. Here it is. |
Manuals |
I think documentation is included within the
source code. Because comp.sources.misc is practically extinct,
Ibpag2 is in an old archive, and not very user-friendly to
access. |
Summary |
kwParser is a parser generator for Python. It transforms an abstract
specification of a language grammar (for example the CORBA Interface
Definition Language) together with "interpretation functions" that
define the semantics of the language into a compiler or translator or
interpreter. In the case of CORBA IDL a python program using kwParser
could generate stubs and support code (in Python or some other
language) to talk to a CORBA interface. |
Published Papers |
|
Source Code |
Source code links found here
. |
Manuals |
Documentation included with source code. |
Summary |
Lalr is a parser generator that generates very fast and
powerful parsers. Lalr is a part of the
COCKTAIL compiler
construction kit. |
Published Papers |
|
Source Code |
|
Manuals |
|
Summary |
Lex generates programs to be used in simple lexical
analysis of text. Lex is the classical scanner generator that
comes with Unix |
Published Papers |
|
Source Code |
Available in all UNIX machines |
Manuals |
Click here for documentation |
Summary |
LLgen is a tool for generating an efficient
recursive descent parser from an ELL(1) grammar. The grammar
may be ambiguous or more general than ELL(1): there are both
static and dynamic facilities to resolve the ambiguities. |
Published Papers |
Scroll down here to find paper
link and reference |
Source Code |
Download source code |
Manuals |
Documentation (PostScript) is here |
Summary |
LISA generates table driven lexical analysers and
LL(1) syntax analysers from regular expressions and BNF. LISA
supports Kennedy-Warren and Katayama attribute evaluators.
|
Published Papers |
Here is a paper |
Source Code |
|
Manuals |
|
Summary |
Lex compatible scanner generator and Yacc
compatible parser generator for PC's |
Published Papers |
|
Source Code |
Click here for
information about buying MKS Lex & Yacc |
Manuals |
|
Summary |
MUSKOX partitions a software system into
higher-level design declarations of the laws of state transitions,
and a lower-level C++ code that takes care of the details. The
MUSKOX compiler converts the declarations of the laws of state
transitions into C++ programs that control the application at
runtime, thereby making the design a driving part of the running
application. MUSKOX is currently used as the core software
component in the High Availability UNIX clusters where it provides
availability and failover of hardware and software resources.
MUSKOX is also a great choice to encode object behavior in
Object-Oriented Frameworks and to build complex distributed
software such as Transaction Processing systems, WEB servers, and
Workflow engines. Last but not least, MUSKOX is an efficient C++
parser-generator tool.
MUSKOX v4.0 annotates C++ & Java classes and interfaces with EBNF
LR(K) grammars. It features grammar inheritance and redefinition
of rules. It also supports multiple parsers, recording/replay of
trace logs, and HTML pretty-printing. Default and user-defined
lexer and error processing is available. In addition, the new
version provides syntactic lookaheads, semantic predicates, and
syntax trees.
|
Published Papers |
|
Source Code |
Click
here for details about obtaining the source code |
Manuals |
Click
here for documentation links |
Summary |
NewYacc, an extension of the UNIX tool Yacc, is a
tool that allows users to do source-to-source transformations on
input languages. A specification for NewYacc contains all the
elements of a Yacc specification with the addition of user-defined
traversal specifications. |
Published Papers |
|
Source Code |
Here are
some source code links. |
Manuals |
Spawn ps version of manual. |
Summary |
PRECC eXtended is an infinite-lookahead compiler
compiler for context dependent grammars. Specification scripts
are in very EBNF with inherited and synthetic attributes
allowed. |
Published Papers |
A
listing of papers |
Source Code |
Click
here to obtain PRECCX |
Manuals |
Documentation is
here |
Summary |
Ratatosk started as an exercise to learn to use
Gofer, but grew to be a usable system for generating parsers and
scanners to use with Gofer programs. The parser generator generates
SLR parsers from a context free syntax, and allows semantic "actions"
to be used. The generated parsers will backtrack over shift/reduce
and reduce/reduce conflicts, so non-SLR languages can be parsed, at
the cost of some extra run-time. You will, however, get warnings
about any conflicts found while generating a parser. |
Published Papers |
|
Source Code |
Download source code. |
Manuals |
Text manual included with source code. |
Summary |
Rex generates programs to be used in lexical analysis
of text, for example then generation of scanners for compilers.
Rex is a part of the
COCKTAIL compiler construction kit. |
Published Papers |
|
Source Code |
|
Manuals |
|
Summary |
RDP compiles attributed LL(1) grammars decorated
with C-language semantic actions into recursive descent
compilers. |
Published Papers |
|
Source Code |
Here is the source code |
Manuals |
Download documentation |
RE2C
Summary |
re2c is a tool for generating C-based recognizers
from regular expressions. The generated code is not tied to any
particular input model. |
Published Papers |
Here is a paper (PostScript) |
Source Code |
Download source code |
Manual |
Quick reference manual is included with source code in
the re2c.0.5/bootstrap directory |
S/SL
Summary |
S/SL is a programming language for constructing
compilers. It incorporates sequences, repetitions and selections of
actions (statements); input, matching and output of tokens; output of
error signals; subprograms (called rules); and invocation of semantic
operations. |
Published Papers |
R.C. Holt, J.R. Cordy, and D.B. Wortman,
"An Introduction to S/SL: Syntax/Semantic Language",
ACM Transactions on Programming Languages and Systems (TOPLAS),
Vol 4, No. 2, April 1982, Pages 149-178. |
Source Code |
Click here to obtain S/SL |
Manuals |
|
SCANGEN, LLGEN, LARLGEN
Summary |
ScanGen, LLGen, LARLGen are scannner and LL(1) and
LALR(1) parser generators introduced in ``Crafting a Compiler'' by
Fischer & LeBlanc. Consult the READTHIS file to discover which
files each system (SCANGEN, LLGEN, and LARLGEN) requires |
Published Papers |
|
Source Code |
Here is the directory containing the source code. |
Manuals |
Here is the ftp directory containing documentation |
Summary |
ML-Yacc is a parser generator for Standard ML
modeled after the Yacc parser generator. It generates parsers for
LALR languages, like Yacc, and has a similar syntax. The generated
parsers use a different algorithm for recovering from syntax errors
than parsers generated by Yacc. |
Published Papers |
|
Source Code |
Download the source code. |
Manuals |
Manual included with source code. |
Summary |
ML-Lex is a variant of Lex for the ML programming
language. ML-Lex has a syntax similar to Lex, and produces an ML
program instead of a C program. ML-Lex produces a program that runs
very efficiently. Typically the program will be as fast or even
faster than a hand-coded lexer implemented in Standard ML. |
Published Papers |
|
Source Code |
Download sourcecode. |
Manuals |
Documentation is included with the source code. |
Summary |
It's a scanner generator, producing an output file
in tcl which can be used to scan lexically. |
Published Papers |
|
Source Code |
|
Manuals |
Very basic manual here
|
Summary |
T-gen is a general-purpose object-oriented tool for
the automatic generation of string-to-object translators. It is
written in Smalltalk and lives in the Smalltalk programming
environment. T-gen supports the generation of both top-down (LL) and
bottom-up (LR) parsers, which will automatically generate derivation
trees, abstract syntax trees, or arbitrary Smalltalk objects. The
simple specification syntax and graphical user interface are intended
to enhance the learning, comprehension, and usefulness of T-gen.
|
Published Papers |
|
Source Code |
Click here to find out how to get the source code. |
Manuals |
Spawn a PostScript manual. |
Summary |
An implementation of the Tomita parsing algorithm
using LR(0) tables and dynamic programming. This is just a demo for
the Tomita Parsing algorithm. |
Published Papers |
Kluwer '91, _Generalized LR Parsing_, Tomita ed.,
0-7923-9201-9 "The Tomita Parsing Algorithm ...", comp.compilers May
20, 1994 |
Source Code |
Download the source code. |
Manuals |
Some documentation included with source code. |
Summary |
TROOPER encapsulates the complexities of lexical
analysis and parsing of Eiffel texts utilising an extended parse
library which evolved from the ISE EiffelParse library. It provides
a complete working parser written entirely in Eiffel. Semantic
actions can be added to the parsing constructs to develop different
tools such as pretty-printers, compilers, etc.. |
Published Papers |
Avotins, J., Mingins, C., Schmidt, H.,
"Yes! An Object-Oriented Compiler Compiler (YOOCC)",
Technology of Object-Oriented Languages and Systems,
(TOOLS) USA 1995.
Avotins, J., Maughan, G., Mingins, C.,
"Language Processor Construction: The Case for YOOCC and TROOPER",
Technology of Object-Oriented Languages and Systems,
(TOOLS) USA 1995.
Avotins, J., Maughan, G., Mingins, C.,
"YOOCC and TROOPER: Just What the ISE Parse Library Needed",
The Newsletter for the International Eiffel Community,
Volume 4, Number 4, Summer/Fall, 1995. |
Source Code |
Click here to obtain TROOPER |
Manuals |
Click here for how to use TROOPER |
Summary |
Visual Parse++ provides a visual interface which
lets any programmer learn and utilize lexing and parsing
technology interactively. |
Published Papers |
|
Source Code |
Here
is some information about how you can download Visual Parse++ and
get a temporary key so you can try it out |
Manuals |
Click on the Request Info link on this page to receive
documentation |
Summary |
AT&T Yacc is the classical parser generator that
comes with Unix |
Published Papers |
|
Source Code |
|
Manuals |
|
Summary |
Not just a set of C++ wrappers around lex and yacc
output, Yacc++ and the Language Objects Library is an O-O rewrite
of lex and yacc. Features include grammar classes with inheritance,
regular expressions efficiently integrated into LR parsing, and
solutions to include files, substring keywords, nested comments,
and more. |
Published Papers |
|
Source Code |
Email
Authors |
Manuals |
Email
Authors |
YOOCC
Summary |
|
Published Papers |
Avotins, J., Mingins, C., Schmidt, H.,
"Yes! An Object-Oriented Compiler Compiler (YOOCC)",
Technology of Object-Oriented Languages and Systems,
(TOOLS) USA 1995.
Avotins, J., Maughan, G., Mingins, C.,
"Language Processor Construction: The Case for YOOCC and TROOPER",
Technology of Object-Oriented Languages and Systems,
(TOOLS) USA 1995.
Avotins, J., Maughan, G., Mingins, C.,
"YOOCC and TROOPER: Just What the ISE Parse Library Needed",
The Newsletter for the International Eiffel Community,
Volume 4, Number 4, Summer/Fall, 1995. |
Source Code |
Click here to obtain YOOC |
Manuals |
Click here for how to use YOOC |