Considérons la ligne numéro 3 du programme-C suivant.Erreur lexicale par rapport à l'erreur de syntaxe dans C
int main() { /*Line 1 */
int I, N; /*Line 2 */
fro (I=0, I<N, I++); /*Line 3 */
}
Identifier la réponse du compilateur de cette ligne lors de la création du module d'objet:
- Aucune erreur de compilation
- Seule une erreur lexicale
- Seules les erreurs syntaxiques
- deux lexical et syntaxique erreurs
Ma tentative:
Line 3
a fro
au lieu de for
mot-clé de C. Depuis, analyseur lexical ne se soucie pas mauvais mot clé, ce travail d'analyse de syntaxe pour assurer une syntaxe correcte ou un mot clé (à savoir for()
au lieu de fro()
). L'analyseur lexical fait la tokenisation du programme.
Can you explain in formal way please?
Le compilateur avertira certainement que 'fro' est non déclaré cependant. – fuz
@Blagovest, oui il donne une erreur [error] (http://cpp.sh/9hrlp): '' fro 'n'a pas été déclaré dans cette portée'. Est-ce une erreur de syntaxe ou une erreur sémantique? –
@MithleshUpadhyay: c'est vraiment une erreur sémantique. Bien que ce soit un programme invalide, il est conforme à la syntaxe du langage. –