public void handle()

in compiler-jx/src/main/java/org/apache/royale/compiler/internal/visitor/as/ASNodeSwitch.java [105:384]


    public void handle(IASNode node)
    {
        if (node == null)
            return;

        // TODO (mschmalle) Still working on the switch, its complication in the expressions
        switch (node.getNodeID())
        {
        case ContainerID:
            visitor.visitContainer((IContainerNode) node);
            return;

        case ConfigBlockID:
        	ConfigConditionBlockNode condcomp = (ConfigConditionBlockNode)node;
        	if (condcomp.getChildCount() > 0) // will be 0 if conditional compile variable is false
                visitor.visitBlock((IBlockNode) node);
            return;

        case E4XFilterID:
            visitor.visitE4XFilter((IMemberAccessExpressionNode) node);
            return;

        case FileID:
            visitor.visitFile((IFileNode) node);
            return;

        case PackageID:
            visitor.visitPackage((IPackageNode) node);
            return;

        case ClassID:
            visitor.visitClass((IClassNode) node);
            return;

        case InterfaceID:
            visitor.visitInterface((IInterfaceNode) node);
            return;

        case GetterID:
            visitor.visitGetter((IGetterNode) node);
            return;

        case SetterID:
            visitor.visitSetter((ISetterNode) node);
            return;

        case FunctionID:
            visitor.visitFunction((IFunctionNode) node);
            return;

        case ArgumentID:
        case ArgumentRestID:
            visitor.visitParameter((IParameterNode) node);
            return;

        case VariableID:
        case BindableVariableID:
            visitor.visitVariable((IVariableNode) node);
            return;

        case NamespaceID:
            visitor.visitNamespace((INamespaceNode) node);
            return;

        case CatchID:
            visitor.visitCatch((ICatchNode) node);
            return;

        case ForEachLoopID:
        case ForLoopID:
            visitor.visitForLoop((IForLoopNode) node);
            return;

        case FinallyID:
        case DefaultID:
        case ElseID:
        case TerminalID:
            visitor.visitTerminal((ITerminalNode) node);
            return;

        case TryID:
            visitor.visitTry((ITryNode) node);
            return;

        case WithID:
            visitor.visitWith((IWithNode) node);
            return;

        case IfStatementID:
            visitor.visitIf((IIfNode) node);
            return;

        case SwitchID:
            visitor.visitSwitch((ISwitchNode) node);
            return;

        case WhileLoopID:
        case DoWhileLoopID:
            visitor.visitWhileLoop((IWhileLoopNode) node);
            return;

        case FunctionCallID:
            visitor.visitFunctionCall((IFunctionCallNode) node);
            return;

        case TypedExpressionID:
            visitor.visitTypedExpression((ITypedExpressionNode) node);
            return;

        case IdentifierID:
        case NamespaceIdentifierID:
        case NonResolvingIdentifierID:
            if (node instanceof ILanguageIdentifierNode)
            {
                visitor.visitLanguageIdentifierNode((ILanguageIdentifierNode) node);
                return;
            }
            visitor.visitIdentifier((IIdentifierNode) node);
            return;

            //case LiteralIntegerZeroID:
        case LiteralIntegerID:
            //case LiteralIntegerZeroID:
        case LiteralUintID:
            visitor.visitNumericLiteral((INumericLiteralNode) node);
            return;

            //        case LiteralArrayID:
            //        case LiteralBooleanID:
            //        case LiteralNullID:
            //        case LiteralNumberID:
            //        case LiteralObjectID:
            //        case LiteralRegexID:
            //        case LiteralStringID:
            //        case LiteralVoidID:
            //        case LiteralXMLID:
            //        case LiteralID:
            //            visitor.visitLiteral((ILiteralNode) node);
            //            return;

            //        case MemberAccessExpressionID:
            //            visitor.visitMemberAccessExpression((IMemberAccessExpressionNode) node);
            //            return;

        case ArrayIndexExpressionID:
            visitor.visitDynamicAccess((IDynamicAccessNode) node);
            return;

            //        case NamespaceAccessExpressionID:
            //            visitor.visitNamespaceAccessExpression((NamespaceAccessExpressionNode) node);
            //            return;

            //        case TODO:
            //            visitor.visitBinaryOperator((IBinaryOperatorNode) node);
            //            break;
            //
            //        case TODO:
            //            visitor.visitUnaryOperator((IUnaryOperatorNode) node);
            //            break;

        case ReturnStatementID:
            visitor.visitReturn((IReturnNode) node);
            return;

        case ThrowsStatementID:
            visitor.visitThrow((IThrowNode) node);
            return;

        case TernaryExpressionID:
            visitor.visitTernaryOperator((ITernaryOperatorNode) node);
            return;

        case BlockID:
            visitor.visitBlock((IBlockNode) node);
            return;

        case LabledStatementID:
            visitor.visitLabeledStatement((LabeledStatementNode) node);
            return;

        case BreakID:
        case ContinueID:
        case GotoID:
            visitor.visitIterationFlow((IIterationFlowNode) node);
            return;

            //        case ObjectLiteralValuePairID:
            //            visitor.visitObjectLiteralValuePair((IObjectLiteralValuePairNode) node);
            //            return;

        case SuperID:
        case VoidID:
            // XXX this should be removed
            visitor.visitLanguageIdentifierNode((ILanguageIdentifierNode) node);
            return;

        case DefaultXMLStatementID:
            visitor.visitDefaultXMLNamespace((IDefaultXMLNamespaceNode) node);
            return;

            //        case TODO:
            //            visitor.visitKeyword((IKeywordNode) node);
            //            break;
        case VariableExpressionID:
            visitor.visitVariableExpression((IVariableExpressionNode) node);
            return;
        case FunctionObjectID:
        case AnonymousFunctionID:
            visitor.visitFunctionObject((IFunctionObjectNode) node);
            return;
        
        default:
            break;
        }

        // IExpressionNode
        if (node instanceof IUseNamespaceNode)
        {
            visitor.visitUseNamespace((IUseNamespaceNode) node);
        }
        else if (node instanceof IEmbedNode)
        {
            visitor.visitEmbed((IEmbedNode) node);
        }
        else if (node instanceof IObjectLiteralValuePairNode)
        {
            visitor.visitObjectLiteralValuePair((IObjectLiteralValuePairNode) node);
        }
        else if (node instanceof NamespaceAccessExpressionNode)
        {
            visitor.visitNamespaceAccessExpression((INamespaceAccessExpressionNode) node);
        }
        else if (node instanceof IMemberAccessExpressionNode)
        {
            visitor.visitMemberAccessExpression((IMemberAccessExpressionNode) node);
        }
        else if (node instanceof IBinaryOperatorNode)
        {
            if (node instanceof BinaryOperatorAsNode)
                visitor.visitAsOperator((IBinaryOperatorNode) node);
            else if (node instanceof BinaryOperatorIsNode)
                visitor.visitIsOperator((IBinaryOperatorNode) node);
            else
                visitor.visitBinaryOperator((IBinaryOperatorNode) node);
        }
        // IUnaryOperatorNode > IOperator
        else if (node instanceof IUnaryOperatorNode)
        {
            visitor.visitUnaryOperator((IUnaryOperatorNode) node);
        }
        else if (node instanceof IKeywordNode)
        {
            visitor.visitKeyword((IKeywordNode) node);
        }
        else if (node instanceof IMetaTagsNode)
        {
            visitor.visitMetaTags((IMetaTagsNode) node);
        }
        else if (node instanceof IMetaTagNode)
        {
            visitor.visitMetaTag((IMetaTagNode) node);
        }
        else if (node instanceof IImportNode)
        {
            visitor.visitImport((IImportNode) node);
        }
        else if (node instanceof ILiteralNode)
        {
            visitor.visitLiteral((ILiteralNode) node);
        }
        else if (node instanceof IExpressionNode)
        {
            visitor.visitExpression((IExpressionNode) node);
        }
        else
        {
            throw new RuntimeException("handle() not found "
                    + node.getClass().getName());
        }
    }