有人可以帮我解决下面的问题:
使用动作例程考虑以下语法:
params → mode ID par_tail
{ params.list := insert(<mode.val, ID.name>, par_tail.list) }
par_tail → , params { par_tail.list := params.list }
→ { par_tail.list := null }
mode → IN { mode.val := IN }
→ OUT { mode.val := OUT }
→ IN OUT { mode.val := IN OUT }
假设我们正在解析输入:
IN a, OUT b
并且我们的编译器使用自动维护的属性堆栈来保存解析树的活动切片。在解析器预测生产par_tail→ε之前立即显示此属性堆栈的内容。一定要指出lhs和rhs在属性堆栈中的位置。
这是一个家庭作业问题。如果无法解决问题,是否有任何简单的例子我可以参考解决问题?提前谢谢!