私は問題があります。
私は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 `expression' no tiene tipo declarado
../src/buggy.y:351.28-29: $1 de `expression' no tiene tipo declarado
buggy.tab.c: 関数 'yyparse' 内:
buggy.tab.c:1646: 警告: 関数 'yylex' の暗黙の宣言</p>
../src/buggy.y: トップレベル:
lex.yy.c:1577: 警告: 'yyynput' が定義されていますが、使用されていません
lex.yy.c:1618: **警告: 'input' が定義されていますが、使用されていません
Leyendo fichero '../docs/prog1.bgy'.
何が問題ですか?
ありがとう!
さよなら!!