lalr
Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 8
Polyglot 2.2.2
Polyglot is a highly extensible compiler front end for the Java programming language. more>>
Polyglot is a highly extensible compiler front end for the Java programming language. The project is implemented as a Java class framework using design patterns to promote extensibility. Using Polyglot, language extensions can be implemented without duplicating code from the framework itself.
Polyglot has been used to implement domain-specific languages, to explore language design ideas, to simplify Java for pedagogical purposes, and for various code transformations such as optimization and fault injection. Polyglot has been used for both major and minor language extensions; our experience suggests that the cost of implementing an extension scales well with the degree to which it modifies Java.
Polyglot compiles and runs on (at least) Linux, Solaris, Windows, and Mac OS X. Ant and the JFlex scanner generator are required to build it. On Windows, you will also need Cygwin.
Polyglot includes PPG, an extensible LALR parser generator based on the CUP LALR parser generator for Java (extended with improved debugging support).
Polyglot supports Java version 1.4, but a Polyglot extension that supports Java 5. has been developed at UCLA.
A version of Polyglot written in the J& language is also under development. It makes extending the base compiler even easier.
Enhancements:
- Miscellaneous bugfixes.
- An assumption that return statements occur only within methods has been fixed.
- A copy(NodeFactory) method has been added to the Node interface to generate a new version of a node with a different node factory.
<<lessPolyglot has been used to implement domain-specific languages, to explore language design ideas, to simplify Java for pedagogical purposes, and for various code transformations such as optimization and fault injection. Polyglot has been used for both major and minor language extensions; our experience suggests that the cost of implementing an extension scales well with the degree to which it modifies Java.
Polyglot compiles and runs on (at least) Linux, Solaris, Windows, and Mac OS X. Ant and the JFlex scanner generator are required to build it. On Windows, you will also need Cygwin.
Polyglot includes PPG, an extensible LALR parser generator based on the CUP LALR parser generator for Java (extended with improved debugging support).
Polyglot supports Java version 1.4, but a Polyglot extension that supports Java 5. has been developed at UCLA.
A version of Polyglot written in the J& language is also under development. It makes extending the base compiler even easier.
Enhancements:
- Miscellaneous bugfixes.
- An assumption that return statements occur only within methods has been fixed.
- A copy(NodeFactory) method has been added to the Node interface to generate a new version of a node with a different node factory.
Download (MB)
Added: 2007-06-11 License: Eclipse Public License Price:
946 downloads
SableCC 3.2 / 4 Alpha 3
SableCC is an object-oriented compiler framework. more>>
SableCC is an object-oriented framework that generates compilers (and interpreters) in the Java programming language. SableCC framework is based on two fundamental design decisions.
Firstly, the framework uses object-oriented techniques to automatically build a strictly typed abstract syntax tree. Secondly, the framework generates tree-walker classes using an extended version of the visitor design pattern which enables the implementation of actions on the nodes of the abstract syntax tree using inheritance.
These two design decisions lead to a tool that supports a shorter development cycle for constructing compilers.
Main features:
- Deterministic Finite Automaton (DFA) based lexers with full Unicode support and lexical states.
- Extended Backus-Naur Form grammar syntax. (Supports the *, ? and + operators).
- LALR(1) based parsers.
- Automatic generation of strictly-typed abstract syntax trees.
- Automatic generation of tree-walker classes.
Whats New in 3.2 Stable Release:
- SableCC now generates generic Java code.
Whats New in 4 Alpha 3 Development Release:
- Improved syntax for SableCC lexers.
- The exponent operator and code to implement its functionality.
- The Any keyword and code to implements its functionality.
- Robust and intuitive SableCC-based command line parsing.
- Parsing of lexer specifications.
- Partial semantic verification of lexer specifications.
- Improved build script.
- Additional unit tests.
- Additional documentation.
<<lessFirstly, the framework uses object-oriented techniques to automatically build a strictly typed abstract syntax tree. Secondly, the framework generates tree-walker classes using an extended version of the visitor design pattern which enables the implementation of actions on the nodes of the abstract syntax tree using inheritance.
These two design decisions lead to a tool that supports a shorter development cycle for constructing compilers.
Main features:
- Deterministic Finite Automaton (DFA) based lexers with full Unicode support and lexical states.
- Extended Backus-Naur Form grammar syntax. (Supports the *, ? and + operators).
- LALR(1) based parsers.
- Automatic generation of strictly-typed abstract syntax trees.
- Automatic generation of tree-walker classes.
Whats New in 3.2 Stable Release:
- SableCC now generates generic Java code.
Whats New in 4 Alpha 3 Development Release:
- Improved syntax for SableCC lexers.
- The exponent operator and code to implement its functionality.
- The Any keyword and code to implements its functionality.
- Robust and intuitive SableCC-based command line parsing.
- Parsing of lexer specifications.
- Partial semantic verification of lexer specifications.
- Improved build script.
- Additional unit tests.
- Additional documentation.
Download (0.49MB)
Added: 2007-07-26 License: The Apache License 2.0 Price:
822 downloads
SJPT: Simple Java Parsing Toolkit
SJPT: Simple Java Parsing Toolkit is a simple Java parser toolkit. more>>
SJPT is parsing toolkit that supports both top-down (LL(1) and Simple Precedence) and bottom-up parsing (LR(0), SLR(1), LR(1) and LALR(1)).
The toolkit also supports generating Java parsers for all the bottom-up parsing methods, based on a CUP definition (similar to Yacc and CUP, but not restricted to LALR parsers only). I worked alone on this project for the laboratory on Compilers.
SJPT is free software under the terms of the GNU GPL.
<<lessThe toolkit also supports generating Java parsers for all the bottom-up parsing methods, based on a CUP definition (similar to Yacc and CUP, but not restricted to LALR parsers only). I worked alone on this project for the laboratory on Compilers.
SJPT is free software under the terms of the GNU GPL.
Download (0.26MB)
Added: 2005-04-22 License: GPL (GNU General Public License) Price:
1650 downloads
Kelbt 0.12
Kelbt generates backtracking LALR parsers. more>>
Kelbt project can generate backtracking LALR parsers. Standard LALR parser generators emit an error upon encountering a conflict in the parse tables. Kelbt forges onward, generating parsers which handle conflicts by backtracking at runtime. Kelbt is able to generate a parser for any context-free grammar and therefore implements a generalized parsing method.
Kelbt is different from other backtracking LR systems in two ways. First, it elevates backtracking to the level of semantic actions by introducing a class of actions called undo actions. Undo actions are invoked as the backtracker undoes parsing and allow the user to revert any side effects of forward semantic actions. This makes it possible to backtrack over language constructs which must modify global state in preparation for handling context dependencies.
Second, Kelbt enables a user-controlled parsing strategy which approximates that of generalized recursive-descent parsing. This makes it easy for the user to resolve language ambiguities by ordering the grammar productions of a nonterminal according to their precedence. It is approximate in the sense that for most grammars the equivalent of an ordered choice parsing strategy is achieved. In cases where productions are parsed out of the order given, there is a simple grammar transformation which remedies the problem. See the CASCON paper for more details.
As a proof of concept, Kelbt has been used to write a partial C++ parser (included) which is composed of strictly a scanner, a name lookup stage and a grammar with standard semantic actions and semantic undo actions.
Enhancements:
- The -l option was added for turning off line directives in generated code.
- The class keyword was added.
- This indicates that a nonterminal or the token type is a C++ class, and should have its constructors and destructors called.
- The shortest statement was added.
- This allows one to force a shortest match of a list of items.
- The semantics of commit was changed.
- It now forces a full commit rather than a scoped commit.
- Many other improvements were made.
<<lessKelbt is different from other backtracking LR systems in two ways. First, it elevates backtracking to the level of semantic actions by introducing a class of actions called undo actions. Undo actions are invoked as the backtracker undoes parsing and allow the user to revert any side effects of forward semantic actions. This makes it possible to backtrack over language constructs which must modify global state in preparation for handling context dependencies.
Second, Kelbt enables a user-controlled parsing strategy which approximates that of generalized recursive-descent parsing. This makes it easy for the user to resolve language ambiguities by ordering the grammar productions of a nonterminal according to their precedence. It is approximate in the sense that for most grammars the equivalent of an ordered choice parsing strategy is achieved. In cases where productions are parsed out of the order given, there is a simple grammar transformation which remedies the problem. See the CASCON paper for more details.
As a proof of concept, Kelbt has been used to write a partial C++ parser (included) which is composed of strictly a scanner, a name lookup stage and a grammar with standard semantic actions and semantic undo actions.
Enhancements:
- The -l option was added for turning off line directives in generated code.
- The class keyword was added.
- This indicates that a nonterminal or the token type is a C++ class, and should have its constructors and destructors called.
- The shortest statement was added.
- This allows one to force a shortest match of a list of items.
- The semantics of commit was changed.
- It now forces a full commit rather than a scoped commit.
- Many other improvements were made.
Download (0.21MB)
Added: 2007-05-02 License: GPL (GNU General Public License) Price:
905 downloads
byacc 1.9.1
Berkeley Yacc is an LALR(1) parser generator. more>>
Berkeley Yacc is an LALR(1) parser generator. Berkeley Yacc has been made as compatible as possible with AT&T Yacc. Berkeley Yacc can accept any input specification that conforms to the AT&T Yacc documentation. Specifications that take advantage of undocumented features of AT&T Yacc will probably be rejected.
Berkeley Yacc is distributed with no warranty whatever. The code is certain to contain errors. Neither the author nor any contributor takes responsibility for any consequences of its use.
Berkeley Yacc is in the public domain. The data structures and algorithms used in Berkeley Yacc are all either taken from documents available to the general public or are inventions of the author. Anyone may freely distribute
source or binary forms of Berkeley Yacc whether unchanged or modified. Distributers may charge whatever fees they can obtain for Berkeley Yacc. Programs generated by Berkeley Yacc may be distributed freely.
<<lessBerkeley Yacc is distributed with no warranty whatever. The code is certain to contain errors. Neither the author nor any contributor takes responsibility for any consequences of its use.
Berkeley Yacc is in the public domain. The data structures and algorithms used in Berkeley Yacc are all either taken from documents available to the general public or are inventions of the author. Anyone may freely distribute
source or binary forms of Berkeley Yacc whether unchanged or modified. Distributers may charge whatever fees they can obtain for Berkeley Yacc. Programs generated by Berkeley Yacc may be distributed freely.
Download (0.063MB)
Added: 2007-02-15 License: GPL (GNU General Public License) Price:
986 downloads
Dragon parser generator 1.2.11
Dragon is a powerful parser generator. more>>
Dragon is a powerful parser generator. It produces a consequent, object-oriented, integrated scanner and parser solution. Dragon parser generator also scales for very large grammar defintions. Since dragon parses LR(1) grammars, the generation algorithm is quite CPU intensive.
Using LR(1) instead of LALR decreases efficiency of the parser, but avoids some reduce/reduce conflicts in some cases. Dragon provides a very clean and structured way for the integration of application specific context code. Dragon combines the lexical and syntactical analysis and the corresponding code generation.
Enhancements:
- The switch option -y was added to switch between a dynamically allocated parse table or a static parse table.
- An escape feature was added for special token definitions.
<<lessUsing LR(1) instead of LALR decreases efficiency of the parser, but avoids some reduce/reduce conflicts in some cases. Dragon provides a very clean and structured way for the integration of application specific context code. Dragon combines the lexical and syntactical analysis and the corresponding code generation.
Enhancements:
- The switch option -y was added to switch between a dynamically allocated parse table or a static parse table.
- An escape feature was added for special token definitions.
Download (0.36MB)
Added: 2007-08-15 License: GPL (GNU General Public License) Price:
805 downloads
Bison 2.3
Bison is a general-purpose parser generator. more>>
Bison project is a general-purpose parser generator that converts a grammar description for an LALR context-free grammar into a C program to parse that grammar.
Once you are proficient with Bison, you can use it to develop a wide range of language parsers, from those used in simple desk calculators to complex programming languages.
Bison is upward compatible with Yacc: all properly-written Yacc grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with little trouble. You need to be fluent in C programming in order to use Bison.
<<lessOnce you are proficient with Bison, you can use it to develop a wide range of language parsers, from those used in simple desk calculators to complex programming languages.
Bison is upward compatible with Yacc: all properly-written Yacc grammars ought to work with Bison with no change. Anyone familiar with Yacc should be able to use Bison with little trouble. You need to be fluent in C programming in order to use Bison.
Download (1.3MB)
Added: 2006-06-05 License: GPL (GNU General Public License) Price:
722 downloads
Other version of Bison
PyBison 0.1.8
PyBison is a Python-based parser that operates at the speed of C. more>>
PyBison is a Python binding to the Bison (yacc) and Flex (lex) parser-generator utilities.
It allows parsers to be quickly and easily developed as Python class declarations, and for these parsers to take advantage of the fast and powerful C-based Bison/Flex.
Users write a subclass of a basic Parser object, containing a set of methods and attributes specifying the grammar and lexical analysis rules, and taking callbacks for providing parser input, and receiving parser target events.
Presently, PyBison is only working on Linux (and possibly *BSD-based) systems. However, in time, (or if someone volunteers to help out with probably 2 hours coding for a small shim layer) its very possible PyBison will work on Windows as well.
Main features:
- Runs at near the speed of C-based parsers, due to direct hooks into bison-generated C code
- Full LALR(1) grammar support
- Includes a utility to convert your legacy grammar (.y) and scanner (.l) scripts into python modules compatible with PyBison
- Easy to understand - the walkthrough and the examples will have you writing your own parsers in minutes
- Comfortable and intuitive callback mechanisms
- Can export parse tree to XML with a simple method call (New!)
- Can reconstitute a parse tree from XML (New!)
- Examples include working parsers for the languages:
- - ANSI C
- - Java (1.4.2)
<<lessIt allows parsers to be quickly and easily developed as Python class declarations, and for these parsers to take advantage of the fast and powerful C-based Bison/Flex.
Users write a subclass of a basic Parser object, containing a set of methods and attributes specifying the grammar and lexical analysis rules, and taking callbacks for providing parser input, and receiving parser target events.
Presently, PyBison is only working on Linux (and possibly *BSD-based) systems. However, in time, (or if someone volunteers to help out with probably 2 hours coding for a small shim layer) its very possible PyBison will work on Windows as well.
Main features:
- Runs at near the speed of C-based parsers, due to direct hooks into bison-generated C code
- Full LALR(1) grammar support
- Includes a utility to convert your legacy grammar (.y) and scanner (.l) scripts into python modules compatible with PyBison
- Easy to understand - the walkthrough and the examples will have you writing your own parsers in minutes
- Comfortable and intuitive callback mechanisms
- Can export parse tree to XML with a simple method call (New!)
- Can reconstitute a parse tree from XML (New!)
- Examples include working parsers for the languages:
- - ANSI C
- - Java (1.4.2)
Download (0.11MB)
Added: 2005-04-22 License: GPL (GNU General Public License) Price:
1647 downloads
Secleted [ 0 ] software to compare
- Page: 1 of 1
- 1
Copyright Notice:
Software piracy is theft, Using crack, password, serial numbers, registration codes, key generators is illegal and prevent future software development. The above lalr search only lists software in full, demo and trial versions for free download. Download links are directly from our mirror sites or publisher sites, torrent files or links from rapidshare.com, yousendit.com or megaupload.com are not allowed