yylval如何读取yytext的字符数组
时间: 2023-08-15 14:08:16 浏览: 96
Lex源文件的结构-RE到NFA的转换
在 Flex 语法中,yytext 是一个指向当前识别的字符数组的指针,yylval 是对应的词法记号的值。要将 yytext 的字符数组赋值给 yylval,需要使用 Flex 的“动作”语法,并在其中完成赋值操作。
具体来说,可以在 Flex 语法文件中使用以下代码:
```c
%%
/* 定义词法规则 */
...
%%
/* 定义动作 */
{
/* 将 yytext 的字符数组转换为整数,并赋值给 yylval */
yylval = atoi(yytext);
/* 返回对应的记号 */
return INT_TOKEN;
}
```
在上面的代码中,使用 atoi 函数将 yytext 的字符数组转换为整数,然后将其赋值给 yylval,最后返回对应的记号 INT_TOKEN。
需要注意的是,赋值给 yylval 的类型应该与在词法分析器中定义的记号类型相匹配,否则会导致编译错误或运行错误。
阅读全文