我有个问题.
我正在编写一个flex程序,我正在使用这段代码:
%union {
int entero;
char *cadena;
TipoDato tipo;
}
Run Code Online (Sandbox Code Playgroud)
此代码适用于我的数据类型.
我想评估下一行:expresion SUM expresion其中SUM是evaluate的运算和,例如69 + 60
当我写这个
if (($1.tipo == ENT) && ($3.tipo == ENT)){
$$.tipo = ENT;
} else if (($1.tipo == CADEN) && ($3.tipo == CADEN)) {
$$.tipo = CADEN;
} else {
printf ("Error en la suma: Tipos de datos incompatibles Revise los tipos\n");
yyerror(parser);
}
Run Code Online (Sandbox Code Playgroud)
我有下一个错误
../src/buggy.y:350.37-38:$ 1 de`expresion'no tiene tipo declarado
../src/buggy.y:351.28-29:$ 1 de`expresion'no tiene tipo declarado
buggy.tab.c:在函数'yyparse'中:
buggy.tab.c:1646:警告:隐式声明函数'yylex'
../src/buggy.y:顶级:
lex.yy.c:1577:警告:'yyunput'已定义但未使用
lex.yy.c:1618:**警告:'input'已定义但未使用
Leyendo fichero'../ …