Saxj is a computer program that facilitates the development of programs that parse textual input in the Java programming language. Saxj is a parser generator that creates static Java parsers in the same sense in which YACC, Bison, and YACC++ are static parser generators that create static C-language parsers. Saxj creates Java object-oriented parsers on the basis of grammar specifications. Saxj uses an algorithm of the "look-ahead 1 token, look right" [LALR(1)] type to convert a grammar specification into a parser. Saxj is built upon implementation of this algorithm by use of a library of Java classes. Grammar specifications in Saxj are intentionally similar to those in YACC, Bison, and YACC++, so that the documentation of Saxj can be nearly the same as that of YACC++. The various instantiations of the class of parsers contain a single definition of the parse table; it is in this sense that the parsers are characterized as static. All of the parsers generated by the YACC family are similarly static. A dynamic parser is feasible in the case of machine learning. Saxj can be used, for example, for writing compiler software, for interpreting sequences of computer-generated commands, and for general language parsing.
This program was written by Richard Weidner of Caltech for NASA's Jet Propulsion Laboratory. For further information, access the Technical Support Package (TSP) free on-line at www.nasatech.com/tsp under the Software category.
This software is available for commercial licensing. Please contact Don Hart of the California Institute of Technology at (818) 393-3425. Refer to NPO-21055.
This Brief includes a Technical Support Package (TSP).

Program Creates Code to Parse Text
(reference NPO-21055) is currently available for download from the TSP library.
Don't have an account?
Overview
The document is a technical support package from NASA's Jet Propulsion Laboratory (JPL), detailing the Saxj parser generator, developed by Richard J. Weidner. Saxj is specifically designed to generate Java code for parsing textual languages, making it a valuable tool for developers working with machine textual languages. The document emphasizes the importance of understanding language grammar and parsing in the context of modern computing, where visual elements often overshadow textual content.
Saxj is positioned as an alternative to traditional parser generators like yacc and bison, with a focus on Java. It allows users to write parsers based on grammar specifications similar to those used in yacc, facilitating a smoother transition for those familiar with yacc-like utilities. The document highlights that Saxj is not publicly distributed; instead, it is part of NASA's Technology Transfer program, aimed at supporting U.S. commercial endeavors. Interested parties are encouraged to contact Don Hart at Caltech for licensing inquiries.
The document also touches on the fundamental concepts of grammar and parsing. A grammar is defined as a system of rules governing a language, while a parser is a program that recognizes and processes sentences written in that grammar. Saxj generates parsers that can handle various input tokens, performing actions such as reducing valid sequences into non-terminal tokens, which contribute to the construction of a parse tree.
In addition to its technical specifications, the document includes a brief discussion on error handling in parsing, emphasizing the importance of understanding and addressing potential issues that may arise during the parsing process. The author encourages readers to refer to additional resources, particularly chapter 3 of a referenced document, for a more comprehensive understanding of using yacc and similar tools.
Overall, the document serves as an introduction to Saxj, outlining its purpose, functionality, and relevance in the field of programming and language processing. It underscores the significance of parsers in interpreting and understanding textual data, while also promoting the Saxj tool as a robust solution for Java developers.

