Je lis le livre du dragon. Citant le texte du livre (3.1.4 erreurs lexicales, 114) PnoQuestion sur l'analyse lexicale
Il est difficile pour un analyseur lexical tell, sans l'aide d'autres composants , qu'il ya une erreur de code source . Par exemple, si la chaîne
fi
est rencontré pour la première fois dans un programme C dans le contexte:fi (a == f(x)) ...
un analyseur lexical ne peut pas dire si
fi
est une faute d'orthographe du mot-cléif
ou non déclaré fonction identificateur. Depuisfi
est un lexème valide pour l'ID de jeton, l'analyseur lexical doit retourner le jetonid
à l'analyseur et laisser une autre phase de le compilateur - probablement l'analyseur en ce cas - gérer une erreur due à transposition des lettres.
Je suis un peu confus après avoir lu ceci. D'après ce que je comprends, l'analyseur lexical commence à traiter le texte de gauche à droite et renvoie les jetons chaque fois que le motif correspond. Donc pour une langue où if
est le mot-clé pour correspondre, comment fi
peut-il correspondre?
Des pensées?
Ahh ... c'est logique maintenant. Merci –