Lex:html
词法分析器。linux
Wiki:windows
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
Flex for windows:http://gnuwin32.sourceforge.net/packages/flex.htmspa
总之,如今也有不少相似于lex的开源软件。.net
Yacc:语法分析器htm
百度百科:http://baike.baidu.com/view/553546.htmblog
是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