yacc 中 %union 的范围是什么
我对 yacc 中的 %union 有点困惑。是否为每个令牌定义了一个唯一的联合,或者是否存在一个全局联合?我正在尝试决定是否需要将联合中的所有内容都作为列表,然后将数据附加到正确的类型。
I'm a little confused by %union in yacc. Is a unique union defined for every single token or is there one global union? I'm trying to decide if I need to make everything in the union a list and just append data to the proper type or not.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
每个令牌都会获得一个单独的
%union
对象。例如,典型的规则如下:在本例中,
$$
、$1
和$3
各自代表该类型的一个单独对象您在%union
语句中定义。通常,您会拥有类似:和:
这意味着
value
和expr
规则生成 %union 对象,其中int_val
成员是有效的。You get a separate
%union
object for each token. For example, a typical rule would be something like:In this case,
$$
,$1
and$3
each represents a separate object of the type you defined in the%union
statement. Typically, you'd have something like:and:
which would mean that the
value
andexpr
rules produce %union objects in which theint_val
member is valid.