我有这样的制作规则:
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()
生产时的方式相同?
答案 0 :(得分:1)
这似乎有效:
void prod12() #void:
{Expr expr=null;}
{
prod1() | expr=prod2() {jjtree.pushNode(expr);}
}