返回yytext [0]做什么?

时间:2015-11-22 18:45:06

标签: flex-lexer lex

在lex-yacc程序的lex部分中添加行的目的是什么

. return yytext[0];
\n return yytext[0];

这是lex部分

%{
#include "y.tab.h"
%}
%%
a return A;
b return B;
. return yytext[0];
\n return yytext[0];
%%

遇到\ n时会返回什么?

1 个答案:

答案 0 :(得分:1)

不确定Ajay2707为什么发表评论而不是回答,因为他是对的。 根据{{​​3}} yytext是一个字符串,其中包含与flex匹配的标记。取[0]取第一个字符。所以

  • 。返回yytext [0];通过除A,B和\ n
  • 之外的任何字符
  • \ n返回yytext [0];通过\ n字符

这是因为模式“。”与\ n

不匹配

简而言之,此词法分析器将a和b更改为大写字母,而没有其他内容。