package st.gravel.support.compiler.ast;
/*
This file is automatically generated from typed smalltalk source. Do not edit by hand.
(C) AG5.com
*/
import java.math.BigInteger;
import st.gravel.support.jvm.NonLocalReturn;
import st.gravel.support.compiler.ast.Node;
import st.gravel.support.compiler.ast.ArrayAccessNode;
import st.gravel.support.compiler.ast.ArrayAtNode;
import st.gravel.support.compiler.ast.ArrayAtPutNode;
import st.gravel.support.compiler.ast.ArrayLiteralNode;
import st.gravel.support.compiler.ast.ArraySizeNode;
import st.gravel.support.compiler.ast.AssignmentNode;
import st.gravel.support.compiler.ast.BinaryMessageNode;
import st.gravel.support.compiler.ast.BinaryMethodNode;
import st.gravel.support.compiler.ast.BlockNode;
import st.gravel.support.compiler.ast.BlockTypeNode;
import st.gravel.support.compiler.ast.BooleanAndNode;
import st.gravel.support.compiler.ast.BooleanBinaryNode;
import st.gravel.support.compiler.ast.BooleanLiteralNode;
import st.gravel.support.compiler.ast.BooleanOrNode;
import st.gravel.support.compiler.ast.BottomTypeNode;
import st.gravel.support.compiler.ast.BoundVariableDeclarationNode;
import st.gravel.support.compiler.ast.ByteArrayLiteralNode;
import st.gravel.support.compiler.ast.CascadeNode;
import st.gravel.support.compiler.ast.CharacterLiteralNode;
import st.gravel.support.compiler.ast.ClassDescriptionNode;
import st.gravel.support.compiler.ast.ClassNode;
import st.gravel.support.compiler.ast.ClassTypeNode;
import st.gravel.support.compiler.ast.CompositeTraitUsageNode;
import st.gravel.support.compiler.ast.CreateHolderNode;
import st.gravel.support.compiler.ast.DoubleLiteralNode;
import st.gravel.support.compiler.ast.EmptyTraitUsageNode;
import st.gravel.support.compiler.ast.Expression;
import st.gravel.support.compiler.ast.FieldReadNode;
import st.gravel.support.compiler.ast.FieldWriteNode;
import st.gravel.support.compiler.ast.FixedPointLiteralNode;
import st.gravel.support.compiler.ast.FloatLiteralNode;
import st.gravel.support.compiler.ast.GenericTypeVariableNode;
import st.gravel.support.compiler.ast.GlobalReadNode;
import st.gravel.support.compiler.ast.GlobalWriteNode;
import st.gravel.support.compiler.ast.HolderDeclarationNode;
import st.gravel.support.compiler.ast.IdentityComparisonNode;
import st.gravel.support.compiler.ast.IfTrueIfFalseNode;
import st.gravel.support.compiler.ast.InlineExpressionCollection;
import st.gravel.support.compiler.ast.InstanceCreationNode;
import st.gravel.support.compiler.ast.InstanceTypeNode;
import st.gravel.support.compiler.ast.IntegerLiteralNode;
import st.gravel.support.compiler.ast.IntermediateNode;
import st.gravel.support.compiler.ast.IntermediateStatement;
import st.gravel.support.compiler.ast.IsNilNode;
import st.gravel.support.compiler.ast.KeywordMessageNode;
import st.gravel.support.compiler.ast.KeywordMethodNode;
import st.gravel.support.compiler.ast.LiteralNode;
import st.gravel.support.compiler.ast.LocalReadNode;
import st.gravel.support.compiler.ast.LocalWriteNode;
import st.gravel.support.compiler.ast.MessageNode;
import st.gravel.support.compiler.ast.MetaclassNode;
import st.gravel.support.compiler.ast.MethodNode;
import st.gravel.support.compiler.ast.NamespacedTypeVariableNode;
import st.gravel.support.compiler.ast.NamespacedVariableNode;
import st.gravel.support.compiler.ast.NamespaceNode;
import st.gravel.support.compiler.ast.NilLiteralNode;
import st.gravel.support.compiler.ast.NodeVisitorError;
import st.gravel.support.compiler.ast.NonLocalReturnNode;
import st.gravel.support.compiler.ast.NumberLiteralNode;
import st.gravel.support.compiler.ast.PackageNode;
import st.gravel.support.compiler.ast.PragmaNode;
import st.gravel.support.compiler.ast.ReadHolderNode;
import st.gravel.support.compiler.ast.ReferenceLiteralNode;
import st.gravel.support.compiler.ast.ReturnNode;
import st.gravel.support.compiler.ast.SelfNode;
import st.gravel.support.compiler.ast.SelfTypeNode;
import st.gravel.support.compiler.ast.SequenceNode;
import st.gravel.support.compiler.ast.SharedDeclarationNode;
import st.gravel.support.compiler.ast.SimpleTraitUsageNode;
import st.gravel.support.compiler.ast.StateAccessNode;
import st.gravel.support.compiler.ast.Statement;
import st.gravel.support.compiler.ast.StringLiteralNode;
import st.gravel.support.compiler.ast.SuperNode;
import st.gravel.support.compiler.ast.SymbolLiteralNode;
import st.gravel.support.compiler.ast.SystemDefinitionNode;
import st.gravel.support.compiler.ast.SystemNode;
import st.gravel.support.compiler.ast.ToDoNode;
import st.gravel.support.compiler.ast.TraitUsageNode;
import st.gravel.support.compiler.ast.TypeCast;
import st.gravel.support.compiler.ast.TypeDefNode;
import st.gravel.support.compiler.ast.TypeNode;
import st.gravel.support.compiler.ast.TypeOrNode;
import st.gravel.support.compiler.ast.TypeVariableNode;
import st.gravel.support.compiler.ast.UnaryMessageNode;
import st.gravel.support.compiler.ast.UnaryMethodNode;
import st.gravel.support.compiler.ast.VariableDeclarationNode;
import st.gravel.support.compiler.ast.VariableNode;
import st.gravel.support.compiler.ast.WhileFalseNode;
import st.gravel.support.compiler.ast.WhileNode;
import st.gravel.support.compiler.ast.WhileTrueNode;
import st.gravel.support.compiler.ast.WriteHolderNode;
public class NodeVisitor<X> extends Object implements Cloneable {
public static NodeVisitor_Factory factory = new NodeVisitor_Factory();
public static class NodeVisitor_Factory<X> extends st.gravel.support.jvm.SmalltalkFactory {
public NodeVisitor<X> basicNew() {
NodeVisitor<X> newInstance = new NodeVisitor<X>();
newInstance.initialize();
return newInstance;
}
public X visit_(final Node _anObject) {
return this.basicNew().visit_(_anObject);
}
}
public NodeVisitor<X> copy() {
try {
NodeVisitor<X> _temp1 = (NodeVisitor<X>) this.clone();
_temp1.postCopy();
return _temp1;
} catch (CloneNotSupportedException e) {
throw new RuntimeException(e);
}
}
public NodeVisitor_Factory<X> factory() {
return factory;
}
public NodeVisitor initialize() {
return this;
}
public NodeVisitor<X> postCopy() {
return this;
}
public X visitArrayAccessNode_(final ArrayAccessNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitArrayAtNode_(final ArrayAtNode _anObject) {
return this.visitArrayAccessNode_(_anObject);
}
public X visitArrayAtPutNode_(final ArrayAtPutNode _anObject) {
return this.visitArrayAccessNode_(_anObject);
}
public X visitArrayLiteralNode_(final ArrayLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitArraySizeNode_(final ArraySizeNode _anObject) {
return this.visitArrayAccessNode_(_anObject);
}
public X visitAssignmentNode_(final AssignmentNode _anObject) {
return this.visitExpression_(_anObject);
}
public X visitBinaryMessageNode_(final BinaryMessageNode _anObject) {
return this.visitMessageNode_(_anObject);
}
public X visitBinaryMethodNode_(final BinaryMethodNode _anObject) {
return this.visitMethodNode_(_anObject);
}
public X visitBlockNode_(final BlockNode _anObject) {
return this.visitExpression_(_anObject);
}
public X visitBlockTypeNode_(final BlockTypeNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitBooleanAndNode_(final BooleanAndNode _anObject) {
return this.visitBooleanBinaryNode_(_anObject);
}
public X visitBooleanBinaryNode_(final BooleanBinaryNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitBooleanLiteralNode_(final BooleanLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitBooleanOrNode_(final BooleanOrNode _anObject) {
return this.visitBooleanBinaryNode_(_anObject);
}
public X visitBottomTypeNode_(final BottomTypeNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitBoundVariableDeclarationNode_(final BoundVariableDeclarationNode _anObject) {
return this.visitVariableDeclarationNode_(_anObject);
}
public X visitByteArrayLiteralNode_(final ByteArrayLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitCascadeNode_(final CascadeNode _anObject) {
return this.visitExpression_(_anObject);
}
public X visitCharacterLiteralNode_(final CharacterLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitClassDescriptionNode_(final ClassDescriptionNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitClassNode_(final ClassNode _anObject) {
return this.visitClassDescriptionNode_(_anObject);
}
public X visitClassTypeNode_(final ClassTypeNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitCompositeTraitUsageNode_(final CompositeTraitUsageNode _anObject) {
return this.visitTraitUsageNode_(_anObject);
}
public X visitCreateHolderNode_(final CreateHolderNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitDoubleLiteralNode_(final DoubleLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitEmptyTraitUsageNode_(final EmptyTraitUsageNode _anObject) {
return this.visitTraitUsageNode_(_anObject);
}
public X visitExpression_(final Expression _anObject) {
return this.visitStatement_(_anObject);
}
public X visitFieldReadNode_(final FieldReadNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitFieldWriteNode_(final FieldWriteNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitFixedPointLiteralNode_(final FixedPointLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitFloatLiteralNode_(final FloatLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitGenericTypeVariableNode_(final GenericTypeVariableNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitGlobalReadNode_(final GlobalReadNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitGlobalWriteNode_(final GlobalWriteNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitHolderDeclarationNode_(final HolderDeclarationNode _anObject) {
return this.visitVariableDeclarationNode_(_anObject);
}
public X visitIdentityComparisonNode_(final IdentityComparisonNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitIfTrueIfFalseNode_(final IfTrueIfFalseNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitInlineExpressionCollection_(final InlineExpressionCollection _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitInstanceCreationNode_(final InstanceCreationNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitInstanceTypeNode_(final InstanceTypeNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitIntegerLiteralNode_(final IntegerLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitIntermediateNode_(final IntermediateNode _anObject) {
return this.visitExpression_(_anObject);
}
public X visitIntermediateStatement_(final IntermediateStatement _anObject) {
return this.visitStatement_(_anObject);
}
public X visitIsNilNode_(final IsNilNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitKeywordMessageNode_(final KeywordMessageNode _anObject) {
return this.visitMessageNode_(_anObject);
}
public X visitKeywordMethodNode_(final KeywordMethodNode _anObject) {
return this.visitMethodNode_(_anObject);
}
public X visitLiteralNode_(final LiteralNode _anObject) {
return this.visitExpression_(_anObject);
}
public X visitLocalReadNode_(final LocalReadNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitLocalWriteNode_(final LocalWriteNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitMessageNode_(final MessageNode _anObject) {
return this.visitExpression_(_anObject);
}
public X visitMetaclassNode_(final MetaclassNode _anObject) {
return this.visitClassDescriptionNode_(_anObject);
}
public X visitMethodNode_(final MethodNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitNamespacedTypeVariableNode_(final NamespacedTypeVariableNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitNamespacedVariableNode_(final NamespacedVariableNode _anObject) {
return this.visitExpression_(_anObject);
}
public X visitNamespaceNode_(final NamespaceNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitNilLiteralNode_(final NilLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitNode_(final Node _anObject) {
throw NodeVisitorError.factory.basicNew();
}
public X visitNonLocalReturnNode_(final NonLocalReturnNode _anObject) {
return this.visitIntermediateStatement_(_anObject);
}
public X visitNumberLiteralNode_(final NumberLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitPackageNode_(final PackageNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitPragmaNode_(final PragmaNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitReadHolderNode_(final ReadHolderNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitReferenceLiteralNode_(final ReferenceLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitReturnNode_(final ReturnNode _anObject) {
return this.visitStatement_(_anObject);
}
public X visitSelfNode_(final SelfNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitSelfTypeNode_(final SelfTypeNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitSequenceNode_(final SequenceNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitSharedDeclarationNode_(final SharedDeclarationNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitSimpleTraitUsageNode_(final SimpleTraitUsageNode _anObject) {
return this.visitTraitUsageNode_(_anObject);
}
public X visitStateAccessNode_(final StateAccessNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitStatement_(final Statement _anObject) {
return this.visitNode_(_anObject);
}
public X visitStringLiteralNode_(final StringLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitSuperNode_(final SuperNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visitSymbolLiteralNode_(final SymbolLiteralNode _anObject) {
return this.visitLiteralNode_(_anObject);
}
public X visitSystemDefinitionNode_(final SystemDefinitionNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitSystemNode_(final SystemNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitToDoNode_(final ToDoNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitTraitUsageNode_(final TraitUsageNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitTypeCast_(final TypeCast _aTypeCast) {
return this.visitExpression_(_aTypeCast);
}
public X visitTypeDefNode_(final TypeDefNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitTypeNode_(final TypeNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitTypeOrNode_(final TypeOrNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitTypeVariableNode_(final TypeVariableNode _anObject) {
return this.visitTypeNode_(_anObject);
}
public X visitUnaryMessageNode_(final UnaryMessageNode _anObject) {
return this.visitMessageNode_(_anObject);
}
public X visitUnaryMethodNode_(final UnaryMethodNode _anObject) {
return this.visitMethodNode_(_anObject);
}
public X visitVariableDeclarationNode_(final VariableDeclarationNode _anObject) {
return this.visitNode_(_anObject);
}
public X visitVariableNode_(final VariableNode _anObject) {
return this.visitExpression_(_anObject);
}
public X visitWhileFalseNode_(final WhileFalseNode _aNode) {
return this.visitWhileNode_(_aNode);
}
public X visitWhileNode_(final WhileNode _anObject) {
return this.visitIntermediateNode_(_anObject);
}
public X visitWhileTrueNode_(final WhileTrueNode _aNode) {
return this.visitWhileNode_(_aNode);
}
public X visitWriteHolderNode_(final WriteHolderNode _anObject) {
return this.visitStateAccessNode_(_anObject);
}
public X visit_(final Node _anObject) {
return _anObject.accept_(this);
}
}