OmniLexerPro™ for Windows

OmniLexerPro™ for Windows is a powerful and versatile lexical analyzer generator, capable of producing compact, efficient lexical analyzers expressed in the C/C++, Java, Ada, and PL/SQL programming languages.

Its user interface is simple and includes a text editor that features color-coded, syntax highlighting of specification files defining lexical analyzer objects. Its client-application interface is elegant, simplifying its introduction into larger applications, like text editors, compilers, search engines, etc. Sample specification files and application programs are included in the installation package to demonstrate the process by which lexical analyzers are built.

What is Lexical Analysis?

Lexical analysis or scanning is an operation that collects character sequences within text into special groups called lexemes. Lexical analysis is an operation employed by search engines, compilers, web browsers, and translators of all sorts, making it a topic fundamentally important to software developers whose programs must sift though and make sense of text.

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 many uses. Scanners are integral components of programming language compilers. Scanner components 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, would benefit by making a lexical analyzer generator such as OmniLexerPro™ a permanent part of their toolkit.


OmniLexerPro™ capabilities make it superior to other scanner generators on the market. These are some its many features:

  • 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;
  • The scanner specification language, uses a notation similar to those seen in computer science texts, making it easy to learn and to apply;
  • OmniLexerPro™ 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, OmniLexerPro™ 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; and
  • The lexical analyzer interface to application programs is elegant, simplifying its introduction into larger applications;


OmniLexerPro™ is capable of producing error-free lexical analyzers the first time and every time. Working scanners can be designed and built in a small fraction of the time consumed when building these programs by hand. Test programs, provided in the installation package are provided to validate generated scanner code. Scanners automatically generated by OmniLexerPro™ are easily adapted to changing requirements. With only changes to the scanner specification, OmniLexerPro™ can be commanded to regenerate a new lexical analyzer in the blink of an eye.


OmniLexerPro™ for Windows first became available for purchase online in 2004. In mid-2013 a major revision of OmniLexerPro™ was begun that will equip it with an enhanced context-sensitive text editor, an improved graphical user interface, and a new code generator. We continue to support licensed users of OmniLexerPro™. However, we are not making it available online until its overhaul is complete. Licensed users may continue to rely on us for support.

We expect this product to available online in August 2010. Please check our News section on our home page for status updates.