Lex:
词法分析器。
Wiki:
http://zh.wikipedia.org/wiki/Lex
http://en.wikipedia.org/wiki/Lex_programming_tool
已经成为POSIX的标准了,所以一般的linux系统应该都自带了lex命令了。flex是lex的开源版本,项目主页:http://sourceforge.net/projects/flex/ (http://flex.sourceforge.net/)
Flex for windows:http://gnuwin32.sourceforge.net/packages/flex.htm
总之,现在也有很多类似于lex的开源软件。
Yacc:语法分析器
百度百科:http://baike.baidu.com/view/553546.htm
是Unix/Linux上一个用来生成编译器的编译器(编译器代码生成器)。yacc生成的编译器主要是用C语言写成的语法解析器(Parser),需要与词法解析器Lex一起使用,再把两部份产生出来的C程序一并编译。yacc本来只在Unix系统上才有,但现时已普遍移植往Windows及其他平台。yacc的输入是巴科斯范式(BNF)表达的语法规则以及语法规约的处理代码,Yacc输出的是基于表驱动的编译器,包含输入的语法规约的处理代码部分。yacc是开发编译器的一个有用的工具,采用LALR(1)语法分析方法。
wiki:http://en.wikipedia.org/wiki/Yacc
开源的,Bison是GNU版本的Yacc。
学习资源:
The Lex&Yacc page:http://dinosaur.compilertools.net/
Parser Generator(类似于lex和yacc的工具,windows):http://www.bumblebeesoftware.com/index.htm
compilers(编译器的几个工具的资料):http://tinf2.vub.ac.be/~dvermeir/courses/compilers/
Lex和Yacc快速入门:http://www.ibm.com/developerworks/cn/linux/sdk/lex/#resources
博文:http://archive.cnblogs.com/a/2206599/
compiler-construction-using-flex-and-bison.pdf: http://wenku.baidu.com/view/c9b18a18a8114431b90dd8c5.html
article,Lex和Yacc应用方法:http://www.cppblog.com/woaidongmao/archive/2008/09/20/62322.html