gpt4 book ai didi

c - 如何在 Lex 和 Yacc 中标记字符串

转载 作者:行者123 更新时间:2023-11-30 15:36:25 24 4
gpt4 key购买 nike

引用Reading new line giving syntax error in LEX YACC 我们正在使用的 lex 文件

 %{
/*
parser for ssa;
*/

#include<stdio.h>
#include<stdlib.h>
#include"y.tab.h"


%}
%%
[\t]+ ;
\n ;



[if]+ printf("first input\n");
[else]+ return(op);
[=]+ return(equal);
[+]+ return(op);
[*]+ return(op);
[-]+ return(op);

[\<][b][b][ ]+[1-9][\>] {return(bblock);}

([[_][a-z]])|([a-z][_][0-9]+)|([0-9]+) {return(var);}

. ;




%%

如果我想获取字符串形式的 token ,即 a_2,我该怎么办怎么办呢???

输入文件是

a_2 = _6 + b_3; 
a_8 = b_7 - c_5;
<小时/>

最佳答案

您可以在 bison 文件中定义 token 类型:

%union{
char *string;
}

%token <string> var

然后替换

return(var);

yylval.string=malloc(yyleng); sprintf(yylval.string,"%s",yytext);return var;

关于c - 如何在 Lex 和 Yacc 中标记字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22576587/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com