This project will design classes, libraries, and software tools,
to implement a BNF Compiler/Parser,
using Java,
for developers to use in their own software projects.
The Project Home Page is: http://bnf-for-java.sourceforge.net/
The SourceForge Summary Page is:
http://sourceforge.net/projects/bnf-for-java/
BNF for Java is the Extended BNF, as defined by ISO/IEC 14977:1996.
Conformance to this International Standard is a priority goal.
The Standard discusses, but does not define, "extensions".
The extensions we provide are: Parse Tree, Code Emitter, Label Tables, and Debug features.
The project was begun with some of the OOAD design using UML,
but the most important documentation is the discussion (in English)
relating the Standard, as the parser's domain, to the Java class design.
Traditionally, we think of a compiler that translates a source program into a complete application,
but this project encourages a broader view, such as:
- grammar as data-type: definition and action in text data;
- data validation in a field on a GUI form;
- a framework for data-directed applications.
As an application, the software acts as a stand-alone Java console application.
As a Java library (a jar), it provides utilities and tools for data processing.
There must be thousands of BNF parsers in the world somewhere, mostly obsolete or neglected.
This project may be the first one that is generally available to the programmer community.