小编Alb*_*rto的帖子

flex中数据类型的问题

我有个问题.

我正在编写一个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'../ …

types yacc lex

2
推荐指数
1
解决办法
4768
查看次数

标签 统计

lex ×1

types ×1

yacc ×1