Répondre

1

En C, l'analyse lexicale se produit en premier. Puis le préprocesseur applique des macros et toutes ses transformations magiques sur le flux de jetons résultant. Ce n'est qu'après l'intervention du préprocesseur que l'analyse syntaxique a lieu.

Ainsi, pour connaître la réponse à votre question, lancez simplement le code dans le préprocesseur. Avec gcc il s'agit d'utiliser l'indicateur de ligne de commande -E. Si le préprocesseur est content alors l'analyse lexicale, par définition, s'est bien passée (ce qui est le cas pour votre exemple).

0

L'analyse lexicale vérifie que tous vos jetons sont valides (ils le sont). L'analyse (ou l'analyse syntaxique) vérifie si la séquence de jetons forme une production valide dans votre grammaire (ce n'est pas le cas). Donc, cela passerait la phase d'analyse lexicale et échouerait la phase d'analyse.

+0

Analyse syntaxique == Analyse syntaxique. –

+0

Oui, j'ai pensé à ça pendant que je tapais. – danben

0

Au cours de la phase d'analyse syntaxique, alias parsing

Questions connexes