有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何手动将节点放在JavaCC堆栈上?

我有这样一个生成规则:

void prod12() #void:
{}
{
  prod1() | prod2()
}

void prod1() :
{}{
...
}

void prod2() :
{}{
...
}

也就是说,prod12()不产生节点,而是留下由prod1()prod2()产生的节点。 现在,我希望prod2()是一个普通函数,它生成一个结果(类型为Expr),我希望将该结果放在堆栈上,就像prod2()是一个结果时一样:`

void prod12() #void:
{Expr expr=null;}
{
  prod1() | expr=prod2()
}

void prod1() :
{}{
...
}

Expr prod2() {
... return expr;
}

为了使prod2()的结果以与prod2()是产品时相同的方式放置在节点堆栈上,我还应该做些什么


共 (1) 个答案

  1. # 1 楼答案

    这似乎有效: void prod12() #void: {Expr expr=null;} { prod1() | expr=prod2() {jjtree.pushNode(expr);} }