Lex and Yacc

Scanning and parsing tools

Overview

Application Development
Lex & Yacc scanning and parsing tools automate the process of translating user input. Lex builds a lexical analyser, a C, C++, or Borland Pascal function that takes a stream of input and breaks it up into tokens according to the rules you specify. YACC builds a parser, a C, C++, or Turbo Pascal function that takes a stream of tokens (such as those provided by MKS LEX) and matches them against the grammar you provide. Lex & Yacc includes the new Yacc Tracker, an interactive trace facility for MKS YACC-generated parsers. It also includes a new symbol table tutorial and example code, a sample code generator, and on-line manual pages.

"I've tried the other Yaccs and MKS Lex & Yacc is by far the best on the market, with the best documentation and the neatest technical support people."

Tom Campbell, Systems & Software Inc.

How Lex and Yacc can help

Lex & Yacc Scanning and Parsing Tools
Do you need powerful compiler construction tools? Do you need to better automate the processing and translation of user input? Do you need tools to help you build language translators or database query languages? Does your ideal solution integrate with your development environment?

MKS Lex & Yacc is the answer
For software development professionals, any tool that makes the job easier is a valuable commodity. MKS Lex & Yacc simplifies the development of interpretive and analytical software such as customized compilers and parsers. By automating complex processes like user input translation, MKS Lex & Yacc provides valuable aid to those who write compilers, database query languages and text processing applications. This allows developers to concentrate more on creativity, and spend less time on the monotony of lexical analysis and grammar matching. Together, the MKS Lexical scanner and MKS Yacc parser generators form a powerful program generation tool which processes any language specification you provide into usable C, C++, or Borland Turbo Pascal code.

Typical Uses
MKS Lex & Yacc can be used to build: - compiler front ends (scanning and parsing phase of compilation) - interpreters for interpreted languages; for example, the calculator component of a spreadsheet, a report generator - language translators - "little languages" such as database query languages and page description languages Interoperability MKS Lex & Yacc is fully compatible with lex and yacc on UNIX System V and BSD UNIX. The grammars and generated code are portable between DOS, OS/2, Windows NT, and UNIX systems. MKS Lex & Yacc is available for DOS, OS/2, and Windows NT.

Lex and Yacc features

Integrated with Microsoft Visual Studio v6.0
MKS Lex & Yacc includes a Microsoft Visual Studio v6.0 Add-in which allows you to develop robust scanners and parsers directly within the VC++ 6.0 IDE. Include Lex and Yacc source files and build rules in VC++ projects along with traditional C and C++ sources and resources.

Interoperability
MKS Lex & Yacc is fully compatible with lex and yacc on UNIX System V and BSD UNIX. MKS Lex & Yacc is available for Windows 95/98/Me, Windows NT, and Windows 2000.

Generate code for Windows applications
MKS Lex & Yacc can now generate code for Windows applications. The scanner and parser tables created by MKS Lex & Yacc can be created as loadable resources, which means a much more efficient use of memory under Windows.

Use 32-bit executables on DOS
The DOS version of MKS Lex & Yacc includes 32-bit protected mode versions of the lex and yacc executables. This feature allows DOS users to access all available memory resources for generating large parsers and scanners. Simplify parser development with Yacc Tracker Yacc Tracker, included with MKS Lex & Yacc, provides you with a way to see inside a running parser, giving you a much clearer mental picture of how yacc generated parsers do their magic. Yacc Tracker will help you to: - gain a better understanding of how yacc parses its input - focus on portions of a grammar that do not work as expected - gain insight so you can modify a grammar to work as intended

Next Steps...