J'ai besoin d'utiliser flex et bison pour analyser du code.bison YYSTYPE: Essayer d'utiliser char *
Le type par défaut de YYSTYPE est int
, même si je ne l'ai jamais déclaré comme tel. Est-ce un défaut de Bison?
Cela m'aiderait beaucoup à retransmettre des chaînes. Je lis ceci: How to solve Bison warning "... has no declared type" Cela ressemble à une bonne approche. (Je n'ai pas encore besoin de toute la puissance d'un syndicat, juste la partie char *, mais je pourrais aussi bien utiliser le syndicat car cela pourrait être utile plus tard.)
Ça ne marche pas pour moi. Je reçois ces erreurs:
y:111.37-38: $1 of `ConstExpression' has no declared type
y:113.34-35: $1 of `ConstFactor' has no declared type
y:114.35-36: $1 of `ConstFactor' has no declared type
y:119.34-35: $1 of `Type' has no declared type
y:109.23-48: warning: type clash on default action: <str> != <>
y:115.23-27: warning: type clash on default action: <str> != <>
[...more of the same snipped...]
Voici les déclarations de mon dossier de grammaire y
:
%union {
char *str;
}
%type<str> ConstExpression ConstFactor Type
Voici une ligne de mon fichier .l
:
[a-zA-Z]+[a-zA-Z0-9]* { yylval.str = strdup(yytext); return yident;}
Que dois-je besoin faire pour résoudre les erreurs?
pensez-vous sérieusement les gens peuvent déboguer votre fichier de grammaire sans le voir ? –
@Kinopiko, avez-vous sérieusement critiqué cela parce qu'il ne s'est pas contenté de coller tous ses devoirs et de dire «Montrez-moi le codez»? Est-ce que ça t'aurait tué, juste pour avoir dit "j'ai besoin de plus d'informations, s'il te plaît, affiche le dossier complet de la grammaire" ou quelque chose du genre? – steveha
@Kinopiko, quand il affichera les informations que vous avez demandées, allez-vous annuler votre downvote? Cela semble juste dur. – steveha