【问题标题】:bison syntax for token declaration令牌声明的野牛语法
【发布时间】:2017-05-24 11:02:29
【问题描述】:

我必须阅读一个野牛语法文件并且不理解以下声明:

语法有联合声明

%union {
   int i;
   char *s;
}

令牌声明如下所示:

%token
      TOK0   TOK1 TOK2
      TOK3   TOK4 TOK5
      TOK6

      TOK7

%token <s> TOK8
%token <i> TOK9

我的期望是,由于联合声明,必须为每个令牌声明提供一个类型。但是 TOK0 到 TOK7 没有提供类型。我还想知道 TOK0 到 TOK7 的声明的表格布局。这个布局有什么特殊含义吗?我只是找到了有关令牌声明 (https://www.gnu.org/software/bison/manual/html_node/Token-Decl.html#Token-Decl) 的信息来源,它似乎没有涵盖我的用例。

【问题讨论】:

    标签: token bison


    【解决方案1】:

    表格布局在 AFAIK 中没有任何意义。如果您不需要它们的类型,则不需要将类型分配给令牌。几乎总是像 open_bracket、close_bracket 或其他你不需要的值的标记是 left type less。您可以将 open_bracket 指定为 &lt;s&gt;,但这不是必需的,为了便于阅读,我不会这样做。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多