Flex中yylex()为什么不跳出调用它的函数?

问题描述 投票:0回答:0
Flex的

yylex()
不会看到EOF,所以不会跳出调用它的函数

我是词法分析的新手,正在尝试为给定的语法制作分析器。我已设置好所有内容,并且语法检查有效。但是当

yylex()
到达字符串的末尾时,它就停在那里。前任。对于 1000 个单词:

%%
<<EOF>> printf("Mojo");
%%

int symbol;
int text();


int main(void)
{
    text();
    printf("All done, EOF?: %i\n",42); //edited 42 (symbol formerly)
}


int text()
{
    symbol = yylex();
}

编辑:更简单:

void text()
{
    yylex(); 
}

我启动它,写“abc”,返回“abc”。但是

printf()
函数没有任何内容 - 无论是 rule 还是 main。这可能是一些新手错误。

program-entry-point flex-lexer lex lexical-analysis
© www.soinside.com 2019 - 2024. All rights reserved.