我有个问题。
我正在使用 flex 编写程序,并且正在使用以下代码:
%union {
int entero;
char *cadena;
TipoDato tipo;
}
此代码适用于我的数据类型。
我想评估下一行: expresion SUM expresion 其中 SUM 是评估的运算总和,例如 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);
}
我有下一个错误
../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'的隐式声明</p>
../src/buggy.y:在顶层:
lex.yy.c:1577:警告:“yyunput”已定义但未使用
lex.yy.c:1618:**警告:“输入”已定义但未使用
Leyendo fichero '../docs/prog1.bgy'。
问题是什么?
谢谢!
再见!!