c/c++语言开发共享野牛警告:键入非终结符号的空规则

我收到一个警告,我对Bison并不是很了解。

warning: empty rule for typed non-terminal, and no action 

这是我的每个非终端角色。 我不明白的部分是,如果我不给它们一个类型,那么我得到编译错误,说明所有的$ ns都是未定义的。 这是我的野牛文件的语法部分。

 %union { char *sval; } %token  PLUS TIMES LPAREN RPAREN ID %type  setf %% s : e { cout << GetNonConstCharStar(std::string("(e ") + $1 + ")") << endl; } e : | e PLUS t { $$ = GetNonConstCharStar(std::string("(e ") + $1 + ")" + " (PLUS " + $2 + ") " + "(t " + $3 + ")" ); } | t { $$ = GetNonConstCharStar(std::string("(t ") + $1 + ")"); } ; t : | t TIMES f { $$ = GetNonConstCharStar(std::string("(t ") + $1 + ")" + " (TIMES " + $2 + ") " + "(f " + $3 + ")"); } | f { $$ = GetNonConstCharStar(std::string("(f ") + $1 + ")"); } ; f : | LPAREN e RPAREN { $$ = GetNonConstCharStar(std::string("(LPAREN \")+ $1 + ") (e " + $2 + ") (RPAREN \" + $3 + ")") ; } | ID { $$ = GetNonConstCharStar(std::string("(ID ") + $1 + ")") ; } ; %% 

     e : | e PLUS t | t 

    e: | e PLUS t | t e: | e PLUS t | t e: | e PLUS t | t ,即什么都不是或者e PLUS tt 。 删除第一个|

      以上就是c/c++开发分享野牛警告:键入非终结符号的空规则相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。

      本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

      ctvol管理联系方式QQ:251552304

      本文章地址:https://www.ctvol.com/c-cdevelopment/519535.html

      (0)
      上一篇 2020年12月5日
      下一篇 2020年12月5日

      精彩推荐