C Bison意外标识符错误
我不熟悉Flex/Bison,但是这个来自的接近文本副本的示例似乎缺少了%%分隔符。那样做C Bison意外标识符错误,c,bison,C,Bison,我不熟悉Flex/Bison,但是这个来自的接近文本副本的示例似乎缺少了%%分隔符。那样做 netrc.y:23.1-5: syntax error, unexpected identifier: 看起来您缺少%%分隔符。那样做 netrc.y:23.1-5: syntax error, unexpected identifier: 您需要在您的%token行之后有一行%%来分隔定义部分和语法部分。您需要在%token行之后有一行%%来分隔定义部分和语法部分。第23行是input:auth
netrc.y:23.1-5: syntax error, unexpected identifier:
看起来您缺少
%%
分隔符。那样做
netrc.y:23.1-5: syntax error, unexpected identifier:
您需要在您的
%token
行之后有一行%%
来分隔定义部分和语法部分。您需要在%token
行之后有一行%%
来分隔定义部分和语法部分。第23行是input:auth input | input代码>;第1-5列是标识符输入
,这似乎就是它所抱怨的。我对野牛的记忆不太清楚,无法解决这个问题。这绝对不是一个近乎文字的复制品。仔细看原始示例,您会发现一些差异,所有这些差异都会导致各种错误。Yacc是不可饶恕的。@Jens当然,这个问题是关于野牛的,不是Yacc,但它们是同一个动物圈的一部分…;-)第23行是input:auth input | input代码>;第1-5列是标识符输入
,这似乎就是它所抱怨的。我对野牛的记忆不太清楚,无法解决这个问题。这绝对不是一个近乎文字的复制品。仔细看原始示例,您会发现一些差异,所有这些差异都会导致各种错误。Yacc是不可饶恕的。@Jens当然,这个问题是关于野牛的,不是Yacc,但它们是同一个动物圈的一部分…;-)我自己在OP的密码上试过了。它消除了错误信息,但引入了更多错误,包括致命错误:开始符号输入不会派生任何句子
。我想这会引发另外几个问题:-)与海报的说法相反,引用的副本大不相同。好吧,可能我对字面上的单词不正确。没有比这更复杂的东西了,这是近距离的@基思·汤普森:谢谢。我确实犯了那个错误。你有什么建议吗?首先,要理解什么是语法规则。例如,您不应该只引用非终结符本身,如在input:…|输入
。表示非终结符是以另一种方式完成的一项或多项任务的列表。任何对yacc的介绍都应该解释这些事情。我自己在OP的代码中尝试过。它消除了错误信息,但引入了更多错误,包括致命错误:开始符号输入不会派生任何句子
。我想这会引发另外几个问题:-)与海报的说法相反,引用的副本大不相同。好吧,可能我对字面上的单词不正确。没有比这更复杂的东西了,这是近距离的@基思·汤普森:谢谢。我确实犯了那个错误。你有什么建议吗?首先,要理解什么是语法规则。例如,您不应该只引用非终结符本身,如在input:…|输入
。表示非终结符是以另一种方式完成的一项或多项任务的列表。任何对yacc的介绍都应该解释这些事情。
%}
%token ...
%%
input : ...