我的语法中有一个规则,例如
A -> B C D E {: ...some actions... :}
;
D -> /*empty*/ {: some actions using attributes of B and C :}
;
要实施与D的生产规则相关的操作,我需要访问解析器堆栈。我该如何在杯子中做到这一点?
重写您的语法:
A -> A1 E
A1 -> B C D
如果第一个生产的动作也需要B
和C
,则A1
的语义值必须更加复杂,才能通过语义值。