下一页 上一页 目录

1. 简介

欢迎,亲爱的读者。

如果您在 Unix 环境中编程过一段时间,您一定遇到过神秘的程序 Lex & YACC,或者正如 GNU/Linux 用户在全球范围内所知,Flex & Bison,其中 Flex 是 Vern Paxon 实现的 Lex,而 Bison 是 YACC 的 GNU 版本。在本文中,我们将始终称这些程序为 Lex 和 YACC——较新的版本是向上兼容的,因此在尝试我们的示例时,您可以使用 Flex 和 Bison。

这些程序非常有用,但与您的 C 编译器一样,它们的手册页 (manpage) 没有解释它们所理解的语言,也没有说明如何使用它们。YACC 与 Lex 结合使用时确实非常出色,但是 Bison 手册页没有描述如何将 Lex 生成的代码与您的 Bison 程序集成。

1.1 本文档 *不是* 什么

有一些很棒的书籍介绍了 Lex & YACC。如果您需要了解更多信息,请务必阅读这些书籍。它们提供的信息比我们提供的要多得多。请参阅末尾的“进一步阅读”部分。本文档旨在引导您使用 Lex & YACC,以便您可以创建您的第一个程序。

Flex 和 BISON 附带的文档也非常出色,但不是教程。不过,它们确实很好地补充了我的 HOWTO。它们也将在末尾被引用。

我绝不是 YACC/Lex 专家。当我开始编写本文档时,我只有两天的经验。我只想让您的这两天更轻松一些。

请不要期望本 HOWTO 会展示正确的 YACC 和 Lex 风格。示例已保持非常简单,并且可能有更好的编写方法。如果您知道如何编写,请告诉我。

1.2 下载资料

请注意,您可以下载所有显示的示例,这些示例都是机器可读的格式。有关详细信息,请参阅主页

1.3 许可证

版权 (c) 2001 bert hubert。本材料的散布只能受限于开放出版许可证 vX.Y 或更高版本(最新版本目前可在 http://www.opencontent.org/openpub/ 获取)中规定的条款和条件。


下一页 上一页 目录