Je suis confronté à des problèmes sur l'analyse lexicale de mon compilateur j'avais déclaré le pointeur suivantProblèmes avec des pointeurs lors de la construction d'un compilateur Pascal en C
char *words[29]={
"program",
"label",
"integer",
"word",
"char",
"byte",
"shortint",
"logint",
"real",
"single",
"double",
"string",
"boolean",
"var",
"procedure",
"function",
"begin",
"end",
"if",
"then",
"else",
"or",
"and",
"div",
"not",
"do",
"while",
"mod"
};
char message[30];
puis j'ai essayé de l'utiliser dans une fonction
for(handle=0;(&words[handle] != NULL);handle++)
{
message = &words[handle];
if(!strcmp(token,message))
message='words';
}
Mais je reçois les erreurs suivantes lors de la tentative d'exécution:
en ce qui concerne (Ligne message = & mots [handle];): C4047 d'avertissement: '=' : 'char [30]' diffère des niveaux d'indirection de 'char **'
en ce qui concerne (ligne message = & mots [poignée];): erreur C2106: '=': opérande gauche doit être l valeur
concernant (ligne message = 'mots';): erreur C2015: trop de caractères à constante
concernant (ligne message = 'mots';): erreur C2106: « = »: opérande gauche doit être l valeur
je ne peux pas travailler avec des pointeurs de cette façon? Avez-vous des suggestions?
Ça m'a beaucoup aidé, merci! –