Main > Free Download Search >

Free antlr software for linux

antlr

Sponsored Links
Sponsored Links
Sort by >> Relevance
rss
Secleted [ 0 ] software to compare
Results 1 - 15 of about 11
ANTLR 2.7.5

ANTLR 2.7.5


ANTLR is an advanced, easy-to-use parser and translator generator. more>>
ANTLR, ANother Tool for Language Recognition, (formerly PCCTS) is a language tool that provides a framework for constructing recognizers, compilers, and translators from grammatical descriptions containing Java, C#, C++, or Python actions.
ANTLR provides excellent support for tree construction, tree walking, and translation. There are currently about 5,000 ANTLR source downloads a month.
Enhancements:
Java CHANGES
- moved consume(); consumeUntil(...) to recover() method you can override in parsers only. New method signature: public void recover(BitSet tokenSet) throws TokenStreamException;
- CommonASTWithHiddenTokens fixed tree builders copy hidden tokens
- ASTFactory; added overloaded method public void setASTNodeClass(Class c);
- default charVocabulary is 0..127 for ASCII range. ~n, for example, gave really wacky results since charVocabulary had no defined range.
- BaseAST.equals() didnt work when node text was null.
- LLkParser.consume now throws TokenStreamException as Parser.consume does.
C++ changes:
- Added TokenStreamRewriteEngine C++ port + example.
- Fixes for sign extension problems that sneaked in 2.7.4.
- Fixes for some quoting bugs in C++ codegeneration.
- Fixes for some wrong extensions in generated docbook and HTML files (for -html/-docbook commandline options).
- Made codegenerator more unicode friendly.
- Tweaks for preliminary UTF8 support. Includes an example that is capable of parsing UTF8 input (more proof of concept than what is to be). (Using a custom InputBuffer and CharScanner). *Feedback on this is appreciated.*
- Fixed codegeneration bug (a..z!) would trigger generation of invalid C++ code.
- Added missing warning for redefinition of AST types for nodes. (Thanks to Sergey Bogdanov)
- Bugfix for AST factory initialization code.
- Fixed default argument mangling for generated rule methods.
- Fixed sign extension problem in error messages in support lib (triggered by MSVC)
- Fixed type generated for saveIndex and _begin variables. Thanks to Brad Schick for the patch.
- getFilename/Line/Column methods added to TokenStreamRecognitionException (thanks to Heinz Beckers)
- Added lexer states to the flex lexer example. It now seems to parse the same set of java as the other antlr java parsers.
- Small tweaks to include files.
- Doc tweaks.
- Revised configure/makefiles by Wolfgang Haefelinger.
C# Changes
Changes for C# support (by Anthony Oguntimehin, Kunle Odutola & Micheal Jordan):
- Factored out IToken and IHiddenStreamToken interfaces.
- ASTPair now supports a protocol for reusing instances. Generated C# code creates far fewer ASTPair instances.
- The values of LA(1) and LA(2) are now cached in lexers
- ASTArray creation/usage replaced with C# variable length parameter lists. ASTArray remains for backwards compatibility only.
- Several bugfixes in antlr.debug to better support ParseView-style tools [Suggested by Eric Taucher.]
- Updated the C# code generator to generate code that uses use cached LA(x) values, reuses ASTPair instances, and uses the new IToken and IHiddenStreamToken interfaces
- Re-organised the ANTLR runtime library for the .NET platform. Library is now packages as two assemblies:
- antlr.runtime.dll - required, core library types and functionality
- antlr.astframe.dll - optional, types and functionality for displaying astframes
- The upshot of all this is that projects that dont need the ASTFrame functionality arent forced to load the System.Drawing and System.Windows.Forms assemblies that it depends on.
- C# VS.NET solution and project files & names have been updated to 2.7.5. Also new project file for the astframe assembly.
- Updated the NAnt build file(s) to support building the new two-assembly runtime.
- Incorporated latest fixes for the java grammar into the C# java example project
- Updated runtime documentation to accomodate the new two-assembly C# runtime.
<<less
Download (0.88MB)
Added: 2005-04-22 License: Public Domain Price:
1650 downloads
Cleaner 0.1

Cleaner 0.1


Cleaner is a Java beautifier that transforms ugly syntax into beautiful syntax. more>>
Cleaner is a Java beautifier that transforms ugly syntax into beautiful syntax. The Java code syntax is parsed using ANTLR and then printed to standard output.

Source is included.

Something like this:

public void foo(String bar)
{
for(int x=0; x < 9; x++ )
{
System.out.println ("X = " + x);
}
}

Will become

public void foo( String bar ){
for ( int x = 0; x < 9; x++ ){
System.out.println( "X = " + x );
}
}

Compile:

$ ant

Run:

$ java -classpath cleaner.jar:lib/antlr.jar cleaner.Cleaner < some-file >
<<less
Download (0.58MB)
Added: 2006-04-17 License: GPL (GNU General Public License) Price:
1335 downloads
CleanSheets 1.4b

CleanSheets 1.4b


CleanSheets is a spreadsheet application that is both extensible and platform-independent. more>>
CleanSheets is a spreadsheet application for the Java platform.

It features a formula language that closely resembles that of Microsoft Excel, and extensions for aiding end-user programmers in developing correct spreadsheets.

The application is written in Java, and relies on ANTLR for generating the formula compiler and the JFC/Swing JTable component for spreadsheet visualization.

<<less
Download (MB)
Added: 2005-12-07 License: GPL (GNU General Public License) Price:
1418 downloads
OpenVRML 0.18.2

OpenVRML 0.18.2


OpenVRML is a VRML and X3D browser plug-in and C++ toolkit for incorporating VRML support into applications. more>> OpenVRML 0.18.2 is designed as a VRML and X3D browser plug-in and C++ toolkit for incorporating VRML support into applications.

OpenVRML provides VRML97 and Classic VRML X3D parsers, a runtime, and an OpenGL renderer as C++ libraries. The renderer is fully separate from the runtime library so that users can also provide their own renderer.

Enhancements: Fixed resolution of the Java virtual machine library for ppc and ppc64.

Requirements:

  • The Boost Libraries (required)
  • Font Configuration Library (recommended)
  • Freetype (recommended)
  • GNU Compiler for Java (recommended)
  • GTK+ (recommended)
  • libjpeg (recommended)
  • libpng (recommended)
  • Mesa (recommended)
  • Mozilla Firefox (recommended)
  • Simple DirectMedia Layer (recommended)
  • ANTLR (optional)
  • Blackdown Java 2 Standard Edition for Linux (optional)
  • IBM JDK for Linux (optional)
  • Mozilla (optional)
  • Sun Java 2 Platform, Standard Edition (optional)
<<less
Added: 2009-07-07 License: LGPL Price: FREE
12 downloads
Config Maker 0.2

Config Maker 0.2


Config Maker is a tool to automatically create C++ classes that parse configuration files. more>>
Config Maker is a tool to automatically create C++ classes that parse configuration files.

Only a few lines of text that describe the possible entries in the configuration file are needed, and the complete class will be generated ready for use.

Basic usage

The input files for Config Maker have a very simple structure (in ANTLR/grep like notation):

objectname (configentry)+
Each configentry looks like this
type entryname defaultvalue (comment)?

type

Type of the entry, can be int, double, string or bool. If the basic type is followed by any number, the corresponding c++object variable will be of type vector < basic type > The number is the initial number of elements that are allocated for the vector, but the actual configuration file can contain more components. These are added using the push_back method.

If there are less elements specified in the configuration file, the object variable will still contain the number of elements specified here. No warning will be issued.
configentry

Name of the entry and corresponding variable. Has to be at least two characters long and can contain characters and numbers. Case insensitive.

defaultvalue

Default value for the entry. This is optional.

comment

Each comment starts with // and is completely ignored

<<less
Download (0.30MB)
Added: 2007-03-20 License: GPL (GNU General Public License) Price:
955 downloads
JDBC SQL Profiler 0.3

JDBC SQL Profiler 0.3


JDBC SQL Profiler is a Swing-based GUI tool to recommend database index creation. more>>
JDBC SQL Profiler is a quickly hacked tool to do statistics on SELECT queries in order to know where it is most efficient to create indexes.

This small tool, released under an Apache-based license connects to the P6Spy JDBC logger and displays in real time the queries going to the database. It uses an integrated SQL parser to build statistics on the most accessed tables and columns and can generate SQL index creation files.

Other information is also gathered and displayed, such as the request time for a single request, for a class of request, and for all the requests. Sorting may be done on these views to detect database problems efficiently.

This tool can be very useful when you have a big volume of queries that you need to analyze not one by one (meaning that the specific time isnt that much of interest), but rather when you want to know what "group" of queries is taking a lot of time, such as queries on the same tables and columns but with different query values. The integrated SQL parser (built with ANTLR) is used to analyze the incoming SELECT queries.

The Swing GUI was based on Apaches Log4J Chainsaw, but all the bugs are mine. Also contributors are welcome to test, make new suggestions, give their opinion and submit patches.
<<less
Download (1.0MB)
Added: 2005-04-28 License: The Apache License Price:
1644 downloads
Rats! 1.12.0

Rats! 1.12.0


Rats! is an easily extensible parser generator for C-like languages. more>>
Rats! is an easily extensible parser generator for C-like languages; though currently it only generates parsers in Java. Rats! project has been explicitly designed so that grammars are concise and easily modifiable. To this end, Rats!
- organizes grammars into modules,
- builds on parsing expression grammars instead of context-free grammars and vintegrates lexing with parsing, i.e., is scannerless,
- supports the automatic generation of abstract syntax trees,
- and provides a well-defined interface for extending parsers to recognize context-sensitive languages and formats.
Parsers generated by Rats! memoize intermediate results, which ensures linear time performance in the presence of unlimited lookahead and backtracking. As a result, they are essentially functional (even though they are implemented in an imperative language) and also called "packrat parsers."
Main features:
- Rats! relies on a module system to structure grammars and their extensions. In particular, it relies on modules to group related productions into separate units. Next, module modifications concisely express extensions to other modules and can add, change, or remove individual alternatives in productions. Finally, module parameters are used to compose modules and their extensions with each other.
- Rats! grammars build on parsing expression grammars (PEGs). While PEGs share many constructs with the familiar EBNF notation, a key difference is that they utilize ordered choices instead of the unordered choices used by context-free grammars (CFGs) and other parser generators, such as Yacc or ANTLR. As a result, Rats! grammars avoid ambiguities and support localized changes. Additional flexibility is offered through syntactic predicates, which match expressions but do not consume the input, thus providing unlimited lookahead, and through the integration of lexing with parsing, which greatly simplifies the addition of new tokens to a grammar. PEGs have the additional benefit that they are not only closed under composition (unlike the LR or LL grammars used by Yacc and ANTLR), but also intersection and complement (unlike CFGs in general).
- To eliminate the need for explicit semantic actions, Rats! can automatically generate abstract syntax trees. In particular, it supports productions that return no semantic values (such as those recognizing spaces or comments), string values (such as those recognizing literals or identifiers), and generic tree nodes (potentially all other productions).
- Since some computer-readable formats are inherently context-sensitive and cannot be expressed as PEGs (or CFGs), Rats! supports two techniques for managing parser context or state, thus providing a well-defined interface for extending parsers. First, Rats! provides parser actions to recognize expressions that depend on local context, i.e., expressions that depend on immediately preceding expressions within the same production. An example for such local context is an explicit length preceding as many instances of some expression. Second, Rats! supports a global state object to recognize expressions that depend on possibly global context. State modifications are performed within lightweight transactions, which preserve the basically functional nature of Rats!-generated parsers. An example for a global context is the symbol table used for disambiguating variable and typedef names when parsing C.
Enhancements:
- Release highlights are support for formatting-preserving source refactorings through parse trees, support for parsing and pretty printing Java 5, (an improved abstract syntax tree for Java, and improved support for type checking C and Java ASTs.
<<less
Download (0.83MB)
Added: 2007-07-19 License: LGPL (GNU Lesser General Public License) Price:
830 downloads
CodeWorker 4.2

CodeWorker 4.2


CodeWorker is a versatile parsing tool and a universal source code generator. more>>
CodeWorker is a versatile Open Source, licensed under GNU Lesser General Public License, parsing tool and a source code generator devoted to generative programming.
Generative programming is a software engineering approach interested in automating the production of reusable, tailor-made, adaptable and reliable IT systems.
In laymans terms, CodeWorker lets you generate code by parsing existing languages, or by creating and parsing your own language. Once a language file has been parsed, CodeWorker provides several techniques for generating code.
The tools scripting language drives the parsing and source code generation process. The scripting language syntax is derived from the C family of languages, making it familiar to most programmers.
The template syntax is like like JSP, ASP, or Velocity. It has variations for parsing, code generation, or functional programming, giving the developer a number of options for organizing CodeWorker projects.
Parsing
CodeWorker can be trained to parse almost any language and provides two distinct methods for creating parsers:
- the extended-BNF notation is declarative, and is a derivative of BNF (the Backus-Naur Form defines the grammar of a language) extended with regular expressions, predefined non-terminals and useful directives. Something close to javacc or to ANTLR in the JAVA world except a separate parser class is not necessary with CodeWorker. This means that parsing scripts can be tested without having to compile a separate parser class.
- Reading tokens is procedural and a somewhat obsolete now that CodeWorker handles BNF parsing scripts smoothly.
While parsing files, CodeWorker feeds nodes into a parse tree. A tree is a convenient structure to represent a hierarchical set of nodes, as in XML for instance.
The parse tree is populated by the parsing task, and used by the source code generation script to generate code, text or binary data.
Source Code Generation
CodeWorker can parse a language and use the resulting parse tree to generate source code via template-based scripts. One example is database DDL (Database Definition Language). CodeWorker has been used to parse DDL and generate large portions of a Java application.
CodeWorkers source code generation can occur in three ways: generation, expansion or translation.
- generation uses a script, much like JSP or PHP, to produce an output file. Only certain areas, called protected areas in the vocabulary of CodeWorker, are preserved in the file.
- expansion is used when small portions of an existing file need to be generated. The points where code is to be inserted are called markers in the vocabulary of CodeWorker, and code is inserted at the markers. The Class Wizard of Visual C++ generates code using this principle.
- translation mode is used when both parsing and source code generation are required to produce a file. Here are the description of two main families of use:
- source-to-source translation: a file must be rewritten in a different syntax. For example, a LaTeX file might have to be translated in HTML.
- program transformation: a source file has to change for optimizing, refactoring, instrumenting or rewriting selected portions. For example, a script could add a trace at the beginning of each function body of a JAVA or C++ source code. To do that, parsing discovers function bodies, and source code generation will insert the code that implements the trace.
Enhancements:
- Concepts of Aspect-Oriented Programming were added to code generation with joint points, advices, and point cuts.
- It allows a better separation of concerns inside a code generation process, leading to improved reading and maintenance of large and complex template-based scripts.
- A new BNF directive was added: #readPythonString.
- Some bugfixes and updates were made in the Eclipse plugin.
<<less
Download (2.9MB)
Added: 2006-05-02 License: LGPL (GNU Lesser General Public License) Price:
1274 downloads
Obol 0.2007.01.19

Obol 0.2007.01.19


Obol is part of a project to investigate properties of security protocols. more>>
Obol is part of a project to investigate properties of security protocols, what they are, how they behave, how they interact, how to deal with them. The Obol language grew out of a desire to escape the distractions of low-level implementation efforts, and the need to experiment and express security protocols as independent programs, closer to the level on which security protocols are analysed.
Whats it all about?
Obol is a specialized high-level programming language for security protocols. The idea is to program closer to the abstractions used to describe and analyze security protocols, and leave all the nasty details to the runtime. The runtime will then handle "mundane" issues such as message representation, communication, cryptographic transformations and so on.
Whats the point of that?
By focusing on the security aspects of the protocol being implemented, one avoid the typical entanglement of security protocol code, low-level cryptographic functions, and application logic. Obol keeps these three aspects separate, resulting in a clean, highly modular and very flexible security protocol framework.
Think of it as trying to do for security protocols what SQL did for databases.
Whats it implemented in?
The most mature (and actively developed) runtime version is implemented in Java, using ANTLR for the parsing. Earlier prototypes were implemented in Common Lisp and Python.
What can it be used for?
Security protocols, or any protocol structure that involve composition and transformation. Obol is interpreted, and protocols can very easily be upgraded. The runtimes modular structure allows for new message representation formats, cryptographic primitives, communication technology and so on, to be added dynamically.
What does it look like?
As an example, consider the typical way a message in a security protocol is described:
A ? B: A, B, {A, B, Na}Kab
The above means that A sends B a message consisting of the senders name, the intended recipients name, and then encrypts a repetition of the names along with a nonce Na(random value) using the shared-key Kab. We have not made the assumption that Obol must run on both protocol endpoints, so we must implement both sides (both A and B):
A side (send B A B (encrypt Kab A B Na)
B side (receive A A B (decrypt Kab A B *Na))
In the above example we assume that A and B know about each other, and that share the key Kab. However, the nonce Na is unknown to B, so B cannot recognize it, but can assign the unknown datum to a symbol, which is what the *Na construct does.
How can Obol be used?
An application must connect to the Obol runtime and request that it starts an Obol protocol, or script. The application receives a handle which it can use to communicate with the script instance, i.e. starting and stopping the protocol execution, setting and retrieving values the script requires and provides.
Enhancements:
Fixes:
- Jar file trouble
- robustness issues
- symbol property dereferencing
<<less
Download (015MB)
Added: 2007-01-20 License: BSD License Price:
1007 downloads
cs.edu Slax Live 0.1 Alpha

cs.edu Slax Live 0.1 Alpha


cs.edu Slax Live is a LiveCD for Computer Science Students. more>>
cs.edu Slax Live is a LiveCD for Computer Science Students.
The cs.edu edition of the Slax aims at providing the richness of GNU/Linux as a development environment to computer science students. The 650 MB of this CD are packed with programming tools and reference documentation. This distribution also tries to remain true to the Slackware tradition of simplicity.
Included Software:
- Compilers and interpreters for numerous programming languages: Ada, C/C++/ObjC/C#, Eiffel, Fortran, Haskell, Icon, Java, Lisp, OCaml, PHP, Perl, Prolog, Python, Ruby, Scheme, SmallTalk, Tcl/Tk, ...
- Development tools including make, autoconf, automake, arch, cvs, flex and bison, antlr, gdb, ddd, valgrind, ...
- The teTeX distribution.
- Browsable documentation for these, plus for several document formats (about 800 MB of documentation).
- GNU/Emacs with several modes: auctex, jdee and tuareg.
- A minimalist server configuration including apache and mysql.
- Enlightenment as the window manager.
- A few useful applications including gimp and mozilla.
Enhancements:
- added software, see complete list in installed_packages.txt
- added `nodma option to handle buggy DMA hardware
- added `kbd= option to set keyboard layout
- set imps/2 as the default mouse protocol
- set vga=773 as the default console text mode
- changed default refresh rates
- changed /etc/inittab to boot at runlevel 4 by default
- changed /etc/rc.d/rc.4 to handle Xorg auto-configuration
- added /etc/X11/xinit/xinitrc.guest as the root and slax xinitrc
- changed /etc/rc.d/rc.slax to handle random password generation
- added /sbin/slaxpasswd and a patched makepasswd
- changed /etc/sudoers, /etc/suauth, /etc/login.access
- changed /etc/rc.d/rc.httpd to generate apache configuration
- added /etc/apache/httpd.conf.bsm and /bin/bashmod for this
- changed /etc/rc.d/rc.mysqld to generate mysql table and random password
- changed /etc/profile and /etc/skel
- modified portions of /usr/bin/xconf
- added /etc/zprofile, /etc/zshrc
- changed DHCP client configuration
- added /etc/rc.d/rc.firewall
- configured some /etc/X11/apps-default/*
- changed mozillas default configuration in /usr/lib/mozilla/default
- added AdBlock and Themer mozillas extensions
- configured swaret
- configured gpg with the Slackware security key and my key
- put a 2.4.28-rc1 linux kernel
- added a hell of a lot of documentation, see /usr/doc and /usr/doc/languages
- added an ugly wallpaper
<<less
Download (653.2MB)
Added: 2006-06-12 License: GPL (GNU General Public License) Price:
1237 downloads
jcpp 1.0.1

jcpp 1.0.1


jcpp is a Java C preprocessor. more>>
jcpp is a Java C preprocessor.

The C Preprocessor is an interesting standard. It appears to be derived from the de-facto behaviour of the first preprocessors, and has evolved over the years. Implementation is therefore difficult. JCPP is a complete, compliant, standalone, pure Java implementation of the C preprocessor.

It is intended to be of use to people writing C-style compilers in Java using tools like sablecc, antlr, JLex, CUP and so forth. This project has has been used to successfully preprocess much of the source code of the GNU C library.

The license is GPL-2. Subversion access is available on request. Less restrictive licenses are freely available on request, but please ask, because I want people to use this software, but Im curious to know who is using it and for what purpose.

<<less
Download (0.38MB)
Added: 2007-04-17 License: GPL (GNU General Public License) Price:
922 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 1
  • 1