Donc j'écris ce scanner réentrant avec flex et j'utilise l'option de pile pour suivre l'état. Selon la documentation, il semble queyy_top_state() semble échouer avec flex
yy_push_state(SCRIPT, yyscanner);
//now yy_top_state(yyscanner) == SCRIPT; should eval true right?
mais quand je mets la printf suivante() immédiatement après yy_push_state()
printf("SCRIPT=%d; DQUOTE=%d; CURRENT=%d\n", SCRIPT, DQUOTE,
yy_top_state(yyscanner));
je reçois ce en retour pour la sortie
SCRIPT=2; DQUOTE=3; CURRENT=1
S'il vous plaît indiquer ce que je fais mal si quelque chose du tout.
Merci d'avance
quelle valeur attendez-vous; Quelle est la valeur de NEWSTATE? –
question bâclée, mon mauvais. NEWSTATE était pseudo pour SCRIPT. ce qui veut dire que je suis vraiment en train d'exécuter yy_push_state (SCRIPT, yyscanner); mais yy_top_state() ne semble pas suivre cela. * fixed * –