J'ai un problème.Problèmes avec les types de données en flex
J'écris un programme avec flex et je suis en utilisant ce code:
%union {
int entero;
char *cadena;
TipoDato tipo;
}
Ce code est pour mes types de données.
Je veux évaluer la ligne suivante: expresion SUM expresion où SUM est la somme de fonctionnement pour évaluer, par exemple 69 + 60
Quand j'écris cette
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);
}
J'ai l'erreur suivante
../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 declarad o
buggy.tab.c: En fonction 'yyparse':
buggy.tab.c: 1646: avertissement: déclaration implicite de la fonction 'yylex'
../src/buggy.y : Au niveau supérieur:
lex.yy.c: 1577: avertissement: 'yyunput' définie mais non utilisée
lex.yy.c: 1618: ** avertissement: 'entrée' définie mais non utilisée
Leyend o fichero '../docs/prog1.bgy'.
Quel est le problème?
Merci!
Salut !!
flex a des instructions spéciales pour éviter les définitions inutilisées: 'option% noinput' ' option% nounput' – jmster