如何使用 flex/bison 的“内置”yyerror() 函数?

问题描述 投票:0回答:1

我创建了自己的。效果很好。但是,我想使用 flex/bison 提供的默认 yyerror() 函数。我在 Windows 11 上使用 GNU C。

c parsing bison flex-lexer lexical-analysis
1个回答
0
投票

系统提供的yyerror版本类似这样:

void yyerror(char *s)
{
    fprintf(stderr, "%s\n", s);
}

你的版本会更好。

由于古老的历史,返回类型可能是

int
。返回的值不太可能很大。

Flex 的

-lfl
库提供了一个默认的
main()
函数和一个默认的
yywrap()
函数 — 仅此而已。 它不提供
yyerror()

Bison 的

-ly
库提供了默认的
main()
函数和默认的
yyerror()
,或多或少如上所示。

© www.soinside.com 2019 - 2024. All rights reserved.