Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bison文件结尾给出语法错误?_Bison_Flex Lexer - Fatal编程技术网

Bison文件结尾给出语法错误?

Bison文件结尾给出语法错误?,bison,flex-lexer,Bison,Flex Lexer,在我的yacc文件中,我有一个开始符号“程序”,如下所示: Program: Declaration Statements E_O_F {/*Semantic Action*/}; E_O_F是flex lexer返回的令牌,如下所示: <<EOF>> return E_O_F; 我想我不会把钱还给你的 <<EOF>> 正确标记。请提供帮助。您不需要显式返回EOF标记,并且您的语法不应尝试检测EOF bison/yacc始终创建一个隐式开

在我的yacc文件中,我有一个开始符号“程序”,如下所示:

Program: Declaration Statements E_O_F {/*Semantic Action*/};
E_O_F是flex lexer返回的令牌,如下所示:

<<EOF>> return E_O_F;
我想我不会把钱还给你的

<<EOF>>


正确标记。请提供帮助。

您不需要显式返回
EOF
标记,并且您的语法不应尝试检测
EOF

bison/yacc始终创建一个隐式开始规则:

real_start: start <<EOF>>
real\u开始:开始
其中,
start
是您的开始生产,
是令牌类型
0

此外,
flex
在找到输入结束时总是返回
0


因此,这两件事共同作用,使您无需在正常事件过程中担心
EOF
。但是,如果您希望解析器只解析部分输入(在本问题中似乎不是这样),那么它们确实会使您的生活变得复杂。

您不需要显式返回
EOF
标记,并且您的语法不应该尝试检测
EOF

bison/yacc始终创建一个隐式开始规则:

real_start: start <<EOF>>
real\u开始:开始
其中,
start
是您的开始生产,
是令牌类型
0

此外,
flex
在找到输入结束时总是返回
0

因此,这两件事共同作用,使您无需在正常事件过程中担心
EOF
。然而,如果您希望解析器只解析输入的一部分(在本问题中似乎不是这样),那么它们确实会使生活变得复杂