File flex文件中的过早EOF %{ #包括 #包括 #包括 #定义堆栈大小为100 int-stack_指针; 布尔堆栈[堆栈大小]; 无效推送(布尔x){ if(堆栈大小>++堆栈指针){ 堆栈[堆栈指针]=x; } 否则{ printf(“堆栈溢出\n”); 出口(0); } } int-pop(){ 如果(堆栈指针>0){ 返回堆栈[堆栈指针--]; } 否则{ printf(“堆栈下溢\n”); 出口(0); } } int值; %} 真值([Tt][Rr][Uu][Ee])1 假值([Ff][Aa][Ll][Ss][Ee])0 %% ({True|u val}{False|u val}){if(yytext[0]=“T”| yytext[0]=“T”){value=1;} 其他的 数值=0; 推送(atof(value));} “&”{Push(pop()&&pop());} “|”{Push(pop()| | pop());} “!”{Push(!pop());} “\n”{int answer=pop();} [\t\n]; [^-0-9+*/;eE\t\n]+{ECHO;fprintf(stderr,“无效字符:”); printf(“\n”);退出(1);} %% int main(void){stack_pointer=-1;yylex();返回0;} int yywrap(void){return 1;}

File flex文件中的过早EOF %{ #包括 #包括 #包括 #定义堆栈大小为100 int-stack_指针; 布尔堆栈[堆栈大小]; 无效推送(布尔x){ if(堆栈大小>++堆栈指针){ 堆栈[堆栈指针]=x; } 否则{ printf(“堆栈溢出\n”); 出口(0); } } int-pop(){ 如果(堆栈指针>0){ 返回堆栈[堆栈指针--]; } 否则{ printf(“堆栈下溢\n”); 出口(0); } } int值; %} 真值([Tt][Rr][Uu][Ee])1 假值([Ff][Aa][Ll][Ss][Ee])0 %% ({True|u val}{False|u val}){if(yytext[0]=“T”| yytext[0]=“T”){value=1;} 其他的 数值=0; 推送(atof(value));} “&”{Push(pop()&&pop());} “|”{Push(pop()| | pop());} “!”{Push(!pop());} “\n”{int answer=pop();} [\t\n]; [^-0-9+*/;eE\t\n]+{ECHO;fprintf(stderr,“无效字符:”); printf(“\n”);退出(1);} %% int main(void){stack_pointer=-1;yylex();返回0;} int yywrap(void){return 1;},file,flexbox,eof,File,Flexbox,Eof,这是代码。我运行了它,在第6行得到了这个错误: 过早的EOF 我试过很多东西,但都不管用。请告诉我任何解决办法。现在我的代码似乎是正确的,但我在编译时得到了过早的eof 我也尝试过类似问题的答案,但仍然没有。我甚至清空了文件,但错误仍然存在 %{ #include<string.h> #include<stdlib.h> #include<stdbool.h> #define stack_size 100 int stack_pointer; bool sta

这是代码。我运行了它,在第6行得到了这个错误:

过早的EOF

我试过很多东西,但都不管用。请告诉我任何解决办法。现在我的代码似乎是正确的,但我在编译时得到了过早的eof


我也尝试过类似问题的答案,但仍然没有。我甚至清空了文件,但错误仍然存在
%{
#include<string.h>
#include<stdlib.h>
#include<stdbool.h>
#define stack_size 100
int stack_pointer;
bool stack[stack_size];
void Push(bool x){
    if (stack_size>++stack_pointer){
        stack[stack_pointer]=x;
    }
    else{
        printf("Stack Overflow\n");
        exit(0);
    }
} 
int pop(){
    if(stack_pointer>0){
        return stack[stack_pointer--];
    }
    else{
        printf("Stack Underflow\n");
        exit(0);
    }
}
int value;

%}

True_val    ([Tt][Rr][Uu][Ee]) | 1
False_val   ([Ff][Aa][Ll][Ss][Ee]) | 0
 
 %%
 ({True_val}|{False_val})    {if(yytext[0]=="T"||yytext[0]=="t"){value=1; }
 else 
   value=0;
 Push (atof(value));}
 "&"                 {Push(pop()&&pop());}
 "|"                 {Push(pop()||pop());}
 "!"                 {Push(!pop());}
 "\n"                {int answer=pop();}
 [ \t\n]                   ;


 [^-0-9+*/.;eE \t\n]+     {ECHO; fprintf (stderr,"Invalid Character: ");
 printf("\n"); exit(1);} 

 %%
int main (void) {stack_pointer= -1; yylex(); return 0;}
int yywrap (void) {return 1;}