最近从本科时候的资料中翻到了编译原理的资料,翻到了部分lex与yacc学习的资料和部分程序,后来又模仿老师给我们的例子程序写了一个简单的计算器,供初学者参考,也作为自己的一个学习笔记。
关于lex现在常用的是GNU的Flex,主页是http://flex.sourceforge.net/,其中有相关文档,以及程序源代码。在 Windows下一版可以直接下载Flex.exe,lex主要是一个词法分析器他只要通过正则对字符串进行分析,生成一系列逻辑单元,通常被称为记号 (token),lex的主要工作就是将字符串分解为token串,每个token代表特定的意义。
Yacc是一个LALR(1)的语法分析器,通过与lex相结