yytext是lex内部已经定义好的指针变量
lex分析过程是将输入字符串按程序员预先设计好的正则表达式进行匹配
yytext总是指向当前获得匹配的字符串
此外yyleng是当前获得匹配的字符串长度
也就是说yytext和yyleng在lex分析过程中是不断地改变的
比如拆分字母串和数字串的分析器(规则部分片段):
[0-9]+ { printf("Number: %s %d\n",yytext,yyleng); }
[a-zA-Z]+ { printf("Letter: %s %d\n",yytext,yyleng); }
假如输入是 abcdef123ghi
程序将显示
Letter: abcdef 6
Number: 123 3
Letter: ghi 3
另:
lex源文件加上
%option pointer //声明yytext是char 指针
%option array //声明yytext是array
//不写默认是char
如有错误请指正
推荐一本书 flex & bison John Levine O'REILLY
以上就是关于lex yacc 中的yytext 什么意思,怎么定义的呢全部的内容,包括:lex yacc 中的yytext 什么意思,怎么定义的呢、、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)