【问题标题】:Bison pseudo-variables returns wrong valueBison 伪变量返回错误值
【发布时间】:2013-06-07 17:55:02
【问题描述】:

我对 Bison 有奇怪的问题。我是初学者,如果我错了,请纠正我,但是 $1,$2... 等应该从第一个、第二个等终端/非终端返回值,是吗?

command: IDENT{printf("%s",$1);} SET{printf("%s",$1);} expression{printf("%s",$1);} ENDCMD

我在做编译器,我被困住了,因为从上面的例子中,我有像“a := 1”这样的表达式(其中 ident 是“a”,set 是“:=”,num 是“1”)“a”在第一次调用中,第二次调用“a :=”,第三次调用“a := 1”。

%union {
    int ival;
    char *sval;
}

ident 是 sval。

我认为,重要的是我最近将字符串添加到我的野牛文件中。以前一切正常。

【问题讨论】:

  • 好的。现在我应该责怪自己了。我深入研究了stackoverflow,发现:gnu.org/software/bison/manual/html_node/…。答案当然是什么。
  • 标记时要小心。 Flex 用于 Adob​​e/Apache UI 框架。 Flex-lexer 用于词法分析器。因为听起来你找到了答案;你应该回答你自己的问题。
  • 是的,但我不能,因为我的代表次数少于 10 次,而且 8 小时没有通过。如果您能回复,我将不胜感激。关于标记,我会记住的。
  • 你找到了答案;你应该得到它的功劳。请务必稍后再回来正式回答您的问题。

标签: bison flex-lexer


【解决方案1】:

好的。现在我应该责怪自己了。我深入研究了stackoverflow,发现:http://www.gnu.org/software/bison/manual/html_node/Strings-are-Destroyed.html。当然是什么

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    • 2020-03-25
    • 1970-01-01
    相关资源
    最近更新 更多