摘要:本框架是一个lex/yacc完整的示例,包括详细的注释,用于学习lex/yacc程序基本的搭建方法,在linux/cygwin下敲入make就可以编译和执行。大部分框架已经搭好了,你只要稍加扩展就可以成为一个计算器之类的程序,用于《编译原理》的课程设计,或者对照理解其它lex/yacc项目的代码。本...
阅读全文
摘要:lex负责词法解析,而yacc负责语法解析,其实说白了就是lex负责根据指定的正则表达式,将输入的字符串匹配成一个一个的token,同时允许用户将当前匹配到的字符串进行处理,并且允许返回一个标识当前token的标识码。而yacc则负责进行语法解析,将一个个的token最终形成一个完整的语法。 lex和yacc类似的,分为三个部分 %{ 这里可以写任何的c代码 比如一些初始化的状态 %} ...
阅读全文
摘要:YACC文件格式yacc文件分为三部分:... definitions ...(%{}%)%%... rules ...%%... subroutines ...定义部分第一部分包括标志(token)定义和C代码(用“%{”和“%}”括起来)。如在定义部分定义标志:%token INTEGER当运行...
阅读全文