使用 yacc 和 lex 编写文本分析器
2008-11-13 08:32:06 来源:WEB开发网本文将研究使用 lex/flex 和 yacc/bison 工具构建分析器所需的步骤。首先构建一个简单的计算器,然后深入地研究如何采用相同的原则进行文本分析。分析文本,即理解和提取文本中的关键部分,是许多应用程序中一个重要的部分。在 UNIX® 中,许多操作系统组成部分都依赖于文本分析,从用来与系统进行交互的 shell,到诸如 awk or Perl 等各种常用的工具和命令,再到用来构建软件和应用程序的 C 编译器。您可以在 UNIX 应用程序(以及其他的应用程序)中使用分析器来构建简单的配置分析器,甚至构建最终的目标:您自己的编程语言。
开始之前
UNIX® 程序员常常发现他们需要去理解文本和其他一些具有灵活的标准化格式的结构。通过使用 lex 和 yacc 工具,您可以构建一个分析引擎,根据特定的规则来处理文本。然后,可以将它集成到您的应用程序中以完成各项工作,从配置分析到构建您自己的编程语言。在学习了本教程之后,您将了解如何定义词法元素、编写 yacc 规则,并使用相应的规则机制来构建和定义各种不同的分析引擎和应用程序。
关于本教程
在 UNIX 中,有许多用来理解和提取文本的方法。您可以使用 grep、awk、Perl 和其他的解决方案。但有的时候,您需要理解和提取结构化的但格式不受限制的数据。在这种情况下,UNIX lex 和 yacc 工具就很有用处了。前面提到的那些工具,如 awk、Perl 以及 shell 和许多其他的编程语言,都使用 lex 和 yacc 来生成分析应用程序以分析和理解文本,并将其转换为所需的信息或数据结构。
Lex 是一种词法分析工具,它可以用来从源文本识别特定结构的文本字符串。Yacc 是一种语法分析器,它可以读取文本并用来将单词序列转换为便于处理的结构化的格式。
更多精彩
赞助商链接