2016-10-25 2 views
0

Lorsque j'ai essayé de le compiler en utilisant make mot-clé, il me donne une erreur de:Fin prématurée du fichier lex

premature end of file in lex.l file in line no 17.

%option noyywrap 
%{ 
    #include "grammer.tab.h" 
%} 
name  ([0-9]) 
whitespace [ \r\t\v\f] 
linefeed \n 
%% 
{name}   { return NAME; } 
":"   { return COLON; } 
"->"   { return RIGHT_ARROW; } 
"{"   { return LEFT_BRACE;} 
"}"   { return RIGHT_BRACE;} 
";"   { return SEMICOLON;} 
{whitespace} 
{linefeed}  ++yylineno; 
%% 

Alors quelqu'un bien vouloir me aider.

enter image description here

Erreur: -

This is the error that the is shown

Queue: - enter image description here

+0

À quoi ressemble ce fichier? –

+0

cette erreur s'est produite lorsque j'ai compilé le fichier make –

+0

Oui, oui c'est fait. Mais dire que vous avez une erreur, et demander de la réparer n'est pas approprié pour Stack Overflow. Si vous pouvez fournir l'erreur ou le Makefile, ce serait beaucoup plus utile. –

Répondre

0

Vous obtenez généralement cette erreur de lex (ou flex) lorsque la dernière ligne ne se termine pas par un nouvelle ligne.

Pour résoudre l'erreur, placez simplement une ligne vide à la fin du fichier.

(Ceci est également vrai pour yacc/bison)

Je note aussi que vous avez une action manquante pour le modèle {whitespace}. Je vous suggère d'essayer:

{whitespace}   ; /* No action */ 
%% 
/* End of the file */ 
+0

Cela ne fonctionne pas encore. –

+0

toujours la même erreur. –

+0

J'ai téléchargé l'image de l'erreur veuillez vérifier et s'il vous plaît dites l'erreur dans le code –