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

时间:2016-03-28 11:09:19

标签: java javacc

我有这样的制作规则:

cars_without_tag_price = '''//td[
    @class="cars" and not(span[@class="colorRed"])
]/following-sibling::td[@class="price"]/span[@class="amount-value"]
'''

for price_node in tree.xpath(cars_without_tag_price):
    price_str = price_node.text.strip()

即,void prod12() #void: {} { prod1() | prod2() } void prod1() : {}{ ... } void prod2() : {}{ ... } 不生成节点,而是留下prod12()prod1()生成的节点。 现在我希望prod2()是一个产生结果(Expr类型)的普通函数,我希望将结果放在堆栈上,就像prod2()生产时一样:`

prod2()

void prod12() #void: {Expr expr=null;} { prod1() | expr=prod2() } void prod1() : {}{ ... } Expr prod2() { ... return expr; } prod2()的结果放在节点堆栈上的方式应该与prod2()生产时的方式相同?

1 个答案:

答案 0 :(得分:1)

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