ASTNode的accept
方法做什么(javadoc没有帮助太多......)以及何时调用visit(Expression node)
方法?
以下是我需要如何使用它的示例代码:
final List<Expression> listi = new ArrayList<Expression>();
String stringi = opi.generate(entryContract, true_false_maybe);
// stringi representes an expression, for example "g!=h".
parser.setSource(stringi.toCharArray());
unit = (CompilationUnit) parser.createAST(null);
ASTNode astRoot = unit.getRoot();
astRoot.accept(new ASTVisitor() {
public boolean visit(Expression node) {
listi.add(node);
return true;
}
});
谢谢
答案 0 :(得分:1)
我猜你的Expression
类是ASTNode
类的子类型,ASTVisitor
类提供其他访问方法(肯定是空的),接受其他ASTNode
{1}}子类。
这是GoF Visitor Design Pattern的实现(也在Wikipedia中描述)。
accept
上的ASTNode
方法只会在访问者实现上调用visit
方法,将自身作为visit
方法的参数传递。