Luthorj is a computer program that creates static lexical analyzers in the Java programming language, in the same sense in which Flex and Lex create lexical analyzers in the C programming language. The majority of users of Luthorj are expected to be familiar with Lex, and Luthorj parses input files that are largely the same as Lex files. However, Luthorj is not merely a look-alike, Java version of Lex. The functionality of Luthorj is partly compatible with that of Flex, but Luthorj and Flex use different methods to provide similar functionality. The lexical analyzers created by Luthorj convert textual strings into tokens that, in turn, can be fed to parsers created by the Saxj program described in the preceding article. Luthorj converts input string specifications to lexical-analysis data structures by use of an algorithm that converts regular expressions to nondeterministic finite automata (NFA). The NFA are then mapped to deterministic finite automata (DFA). The combination of all DFA are represented as a transition table, which is stored in a file. The outputs of Luthorj are the transition table and the code to use it.

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  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-21054.

This Brief includes a Technical Support Package (TSP).
Program Creates Java Lexical Analyzers

(reference NPO-21054) is currently available for download from the TSP library.

Don't have an account? Sign up here.

NASA Tech Briefs Magazine

This article first appeared in the May, 2001 issue of NASA Tech Briefs Magazine.

Read more articles from the archives here.