g++lex.yy.o frame.tab.o main.o-o a.exe pandaxcl10PANDAXCL-F78E7D /d/work/lex yacc/chapter06 s./a.exe sample.cpo 采用尖括号的头文件:[iostream] 采用尖括号的头文件:[string] 采用尖括号的头文件:[ffmpeg/avformat.h] 采用尖括号的头文件:[ffmpeg/avcodec..h] 采用尖括号的头文件:[ffmpeg/avutils..h] 采用尖括号的头文件:[stdio..h] 采用尖括号的头文件:[stdlib.h] 采用双引号的头文件:[hello..h] 采用双引号的头文件:[.hel1o.h] 采用双引号的头文件:[space.h] pandaxcl@PANDAXCL-F78E7D /d/work/lex_yacc/chapter06 9.总结 总的来说,上面的解析C/C+包含预处理信息的时候需要了解如下的概念 词法状态 所谓的词法状态就是指对文本进行词法分析的时候,词法分析器当前所处 的状态,默认情况下,词法分析器都处于INITIAL状态,这个INITIAL 状态是Lx内置的状态。用户可以通过x来重新定义各种各样的状态。 g++ lex.yy.o frame.tab.o main.o -o a.exe pandaxcl@PANDAXCL-F78E7D /d/work/lex_yacc/chapter06 $ ./a.exe < sample.cpp 采用尖括号的头文件:[iostream] 采用尖括号的头文件:[string] 采用尖括号的头文件:[ffmpeg/avformat.h] 采用尖括号的头文件:[ffmpeg/avcodec.h] 采用尖括号的头文件:[ffmpeg/avutils.h] 采用尖括号的头文件:[stdio.h] 采用尖括号的头文件:[stdlib.h] 采用双引号的头文件:[hello.h] 采用双引号的头文件:[../hello.h] 采用双引号的头文件:[space.h] pandaxcl@PANDAXCL-F78E7D /d/work/lex_yacc/chapter06 $ 9. 总结 总的来说,上面的解析 C/C++包含预处理信息的时候需要了解如下的概念: 词法状态 所谓的词法状态就是指对文本进行词法分析的时候,词法分析器当前所处 的状态,默认情况下,词法分析器都处于 INITIAL 状态,这个 INITIAL 状态 是 Lex 内置的状态。用户可以通过%x 来重新定义各种各样的状态