YACC语法分析器生成工具
Yacc(Yet Another Compiler Compiler), 是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器)。Yacc生成的编译器主要是用C语言写成的语法解析器(Parser),需要与词法解析器Lex一起使用,再把两部份产生出来的C程序一并编译。Yacc本来只在Unix系统上才有,但现时已普遍移植往Windows及其他平台。
分析程序生成器(parser generator)是一个指定某个格式中的一种语言的语法作为它的输入,并为该种语言产生分析过程以作为它的输出的程序。在历史上,分析程序生成器被称作编译-编译程序( compiler- compiler ),这是由于按照规律可将所有的编译步骤作为包含在分析程序中的动作来执行。现在的观点是将分析程序仅考虑为编译处理的一个部分,所以这个术语也就有些过时了。
合并 LALR(1) 分析算法是一种常用的分析生成器,它被称作 Yacc( yet another compiler- compiler )。给出 Yacc 的概貌来,将使用Yacc为 TINY 语言开发一个分析程序。
Yacc提供了一种用于描述计算机程序输入的通用工具。Yacc用户指定其输入的结构,以及在识别每个此类结构时要调用的代码。Yacc将这样的规范转换为处理输入过程的子例程。通常,由该子例程处理用户应用程序中的大多数控制流是方便且适当的
评论