package org.yinwang.pysonar.ast;
/**
* A visitor that by default visits every node in the tree.
* Subclasses can override specific node visiting methods
* and decide whether to visit the children.
*/
public class DefaultNodeVisitor implements NodeVisitor {
protected boolean traverseIntoNodes = true;
/**
* Once this is called, all {@code visit} methods will return {@code false}.
* If the current node's children are being visited, all remaining top-level
* children of the node will be visited (without visiting their children),
* and then tree traversal halts. <p>
*
* If the traversal should be halted immediately without visiting any further
* nodes, the visitor can throw a {@link StopIterationException}.
*/
public void stopTraversal() {
traverseIntoNodes = false;
}
public boolean visit(Alias n) {
return traverseIntoNodes;
}
public boolean visit(Assert n) {
return traverseIntoNodes;
}
public boolean visit(Assign n) {
return traverseIntoNodes;
}
public boolean visit(Attribute n) {
return traverseIntoNodes;
}
public boolean visit(AugAssign n) {
return traverseIntoNodes;
}
public boolean visit(BinOp n) {
return traverseIntoNodes;
}
public boolean visit(Block n) {
return traverseIntoNodes;
}
public boolean visit(BoolOp n) {
return traverseIntoNodes;
}
public boolean visit(Break n) {
return traverseIntoNodes;
}
public boolean visit(Call n) {
return traverseIntoNodes;
}
public boolean visit(ClassDef n) {
return traverseIntoNodes;
}
public boolean visit(Compare n) {
return traverseIntoNodes;
}
public boolean visit(Comprehension n) {
return traverseIntoNodes;
}
public boolean visit(Continue n) {
return traverseIntoNodes;
}
public boolean visit(Delete n) {
return traverseIntoNodes;
}
public boolean visit(Dict n) {
return traverseIntoNodes;
}
public boolean visit(Ellipsis n) {
return traverseIntoNodes;
}
public boolean visit(ExceptHandler n) {
return traverseIntoNodes;
}
public boolean visit(Exec n) {
return traverseIntoNodes;
}
public boolean visit(Expr n) {
return traverseIntoNodes;
}
public boolean visit(ExtSlice n) {
return traverseIntoNodes;
}
public boolean visit(For n) {
return traverseIntoNodes;
}
public boolean visit(FunctionDef n) {
return traverseIntoNodes;
}
public boolean visit(GeneratorExp n) {
return traverseIntoNodes;
}
public boolean visit(Global n) {
return traverseIntoNodes;
}
public boolean visit(If n) {
return traverseIntoNodes;
}
public boolean visit(IfExp n) {
return traverseIntoNodes;
}
public boolean visit(Import n) {
return traverseIntoNodes;
}
public boolean visit(ImportFrom n) {
return traverseIntoNodes;
}
public boolean visit(Index n) {
return traverseIntoNodes;
}
public boolean visit(Keyword n) {
return traverseIntoNodes;
}
public boolean visit(Lambda n) {
return traverseIntoNodes;
}
public boolean visit(NList n) {
return traverseIntoNodes;
}
public boolean visit(Set n) {
return traverseIntoNodes;
}
public boolean visit(ListComp n) {
return traverseIntoNodes;
}
public boolean visit(SetComp n) {
return traverseIntoNodes;
}
public boolean visit(DictComp n) {
return traverseIntoNodes;
}
public boolean visit(Module n) {
return traverseIntoNodes;
}
public boolean visit(Name n) {
return traverseIntoNodes;
}
public boolean visit(Num n) {
return traverseIntoNodes;
}
public boolean visit(Pass n) {
return traverseIntoNodes;
}
public boolean visit(Print n) {
return traverseIntoNodes;
}
public boolean visit(Raise n) {
return traverseIntoNodes;
}
public boolean visit(Repr n) {
return traverseIntoNodes;
}
public boolean visit(Return n) {
return traverseIntoNodes;
}
public boolean visit(Slice n) {
return traverseIntoNodes;
}
public boolean visit(Str n) {
return traverseIntoNodes;
}
public boolean visit(Subscript n) {
return traverseIntoNodes;
}
public boolean visit(TryExcept n) {
return traverseIntoNodes;
}
public boolean visit(TryFinally n) {
return traverseIntoNodes;
}
public boolean visit(Tuple n) {
return traverseIntoNodes;
}
public boolean visit(UnaryOp n) {
return traverseIntoNodes;
}
public boolean visit(Url n) {
return traverseIntoNodes;
}
public boolean visit(While n) {
return traverseIntoNodes;
}
public boolean visit(With n) {
return traverseIntoNodes;
}
public boolean visit(Withitem n) {
return traverseIntoNodes;
}
public boolean visit(Yield n) {
return traverseIntoNodes;
}
}