OmniLexer Features
  About OmniLexer | Product Tour

OmniLexer is a powerful lexical analyzer generator. It is a software development tool used by students and by software engineering professionals to automatically generate efficient, compact lexical analyzers in Ada, ANSI C, C++, Java and PL/SQL.

Lexical analyzers (or scanners, as they are also known) are programs that read text one character at a time, transforming the input text stream into a sequence of elementary units called lexemes or tokens. Scanners have a wide variety of uses. One common application is that scanners are used by compilers to identify a source program's keywords, identifiers, operators, constants, comments, and other items of interest. Scanners are also used to build text editors, command language interpreters, pattern matching programs, file search utilities, and much more. In fact, their applicability is so broad that every programmer, student and professional alike, should make a lexical analyzer generator such as OmniLexer a permanent part of their toolkit.

OmniLexer generates scanners from specifications written by the programmer using a simple yet versatile language unique to OmniLexer. This language permits convenient definition of character classes, auxiliary definitions, actions, and tokens. Auxiliary definitions and tokens are defined by the programmer using a conventional notation for regular expressions. This notation is supplemented with several useful extensions.

Advantages

OmniLexer is capable of producing reliable lexical analyzers the first time and every time. Working scanners can be designed and built in a small fraction of the time required by manual methods. Test programs, provided in the installation package, can be used to validate the generated scanner code. Scanners automatically generated by OmniLexer are easily adapted to changing requirements. With a single change to the scanner specification, OmniLexer can be commanded to regenerate a new lexical analyzer in the blink of an eye.

Features

OmniLexer features capabilities that make it distinctly superior to other scanner generators on the market. These are some of the many features that OmniLexer boasts:

Automatic generation of scanners in several programming languages: Ada, PL/SQL, ANSI C and C++.
Filtering unwanted characters or text strings from the input stream is easily accomplished.
OLex++, the scanner specification language, follows conventions that have been firmly established in the computer science literature.
OmniLexer provides a convenient mechanism for specifying, at design-time, the dispatch of action routines as tokens are located in the input text stream.
Applies DFA minimization and perfect hashing algorithms to create highly efficient and compact lexical analyzers.
During translation of the scanner specification, OmniLexer creates text descriptions of token DFAs (Deterministic Finite Automatons), enabling the scanner designer to validate token definitions.
The programmer can specify, at design-time, whether the generated scanner will take its text input from file or from character string sources.
Lookahead capability is provided in all generated lexical analyzers.
Generated scanners double buffer input text to speed execution.
Help files, sample scanner specifications, and applications, written in Ada, PL/SQL, ANSI C and C++, are provided in the installation package.
Predefined action routines are provided to support the detection of single and multiple line comments in the input text stream.
The lexical analyzer interface to application programs is elegant, simplifying its introduction into larger applications.

Home | Download | Purchase | Features | Support

PerfectLogic Home


© 2005 Perfect Logic Corporation.

webmaster@perfectlogic.com