Package org.cx4a.rsense.typing.vertex

Examples of org.cx4a.rsense.typing.vertex.Vertex


   
    public Object visitOpAsgnNode(OpAsgnNode node) {
        String operator = node.getOperatorName();
        String var = node.getVariableName();
        String varAsgn = node.getVariableNameAsgn();
        Vertex receiverVertex = createVertex(node.getReceiverNode());
        Vertex src = createVertex(node.getValueNode());
        Vertex value;
        if (operator.equals("||") || operator.equals("&&")) {
            // do nothing
            value = src;
        } else {
            CallVertex getter = new CallVertex(node.getValueNode(), var, receiverVertex, null, null);
View Full Code Here


        CallVertex setter = new CallVertex(node.getValueNode(), varAsgn, receiverVertex, new Vertex[] {value}, null);
        return RuntimeHelper.call(this, setter);
    }
   
    public Object visitOpAsgnAndNode(OpAsgnAndNode node) {
        Vertex vertex = createEmptyVertex(node);
        Vertex firstVertex = createVertex(node.getFirstNode());
        Vertex secondVertex = createVertex(node.getSecondNode());
        addEdgeAndUpdate(firstVertex, vertex);
        addEdgeAndUpdate(secondVertex, vertex);
        return vertex;
    }
View Full Code Here

        addEdgeAndUpdate(secondVertex, vertex);
        return vertex;
    }
   
    public Object visitOpAsgnOrNode(OpAsgnOrNode node) {
        Vertex vertex = createEmptyVertex(node);
        Vertex firstVertex = createVertex(node.getFirstNode());
        Vertex secondVertex = createVertex(node.getSecondNode());
        addEdgeAndUpdate(firstVertex, vertex);
        addEdgeAndUpdate(secondVertex, vertex);
        return vertex;
    }
View Full Code Here

        addEdgeAndUpdate(secondVertex, vertex);
        return vertex;
    }
   
    public Object visitOrNode(OrNode node) {
        Vertex vertex = createEmptyVertex(node);
        Vertex firstVertex = createVertex(node.getFirstNode());
        Vertex secondVertex = createVertex(node.getSecondNode());
        addEdgeAndUpdate(firstVertex, vertex);
        addEdgeAndUpdate(secondVertex, vertex);
        return vertex;
    }
View Full Code Here

        }
        return Vertex.EMPTY;
    }
   
    public Object visitRescueNode(RescueNode node) {
        Vertex result = Vertex.EMPTY;
        if (node.getBodyNode() != null) {
            result = createVertex(node.getBodyNode());
        }
        if (node.getRescueNode() != null) {
            createVertex(node.getRescueNode());
View Full Code Here

   
    public Object visitReturnNode(ReturnNode node) {
        Frame frame = context.getCurrentFrame();
        Template template = RuntimeHelper.getFrameTemplate(frame);
        if (template != null) {
            Vertex vertex = createVertex(node.getValueNode());
            addEdgeAndPropagate(vertex, template.getReturnVertex());
            return vertex;
        }
        return Vertex.EMPTY;
    }
View Full Code Here

    public Object visitRootNode(RootNode node) {
        return createVertex(node.getBodyNode());
    }
   
    public Object visitSClassNode(SClassNode node) {
        Vertex receiverVertex = createVertex(node.getReceiverNode());

        if (receiverVertex != null) {
            for (IRubyObject object : receiverVertex.getTypeSet()) {
                RubyClass klass = object.getMetaClass();
                if (klass.isSingleton()) {
                    MetaClass metaClass = (MetaClass) klass;
                    if (metaClass.getAttached() instanceof RubyModule) {
                        context.pushFrame(klass, "sclass", klass, null, Visibility.PUBLIC);
View Full Code Here

        } else
            return createSingleTypeVertex(node, self);
    }
   
    public Object visitSplatNode(SplatNode node) {
        Vertex valueVertex = createVertex(node.getValue());
        SplatVertex vertex = new SplatVertex(node, valueVertex);
        RuntimeHelper.splatValue(this, vertex);
        return vertex;
    }
View Full Code Here

    public Object visitStrNode(StrNode node) {
        return createSingleTypeVertex(node, newInstanceOf(runtime.getString()));
    }
   
    public Object visitSuperNode(SuperNode node) {
        Vertex receiverVertex = createFreeSingleTypeVertex(context.getFrameSelf());
        Vertex[] argVertices = null;
        if (node.getArgsNode() != null) {
            List<Node> argNodes = node.getArgsNode().childNodes();
            argVertices = new Vertex[argNodes.size()];
            for (int i = 0; i < argVertices.length; i++) {
View Full Code Here

    public Object visitSymbolNode(SymbolNode node) {
        return createSingleTypeVertex(node, newInstanceOf(runtime.getSymbol()));
    }
   
    public Object visitToAryNode(ToAryNode node) {
        Vertex valueVertex = createVertex(node.getValue());
        ToAryVertex vertex = new ToAryVertex(node, valueVertex);
        RuntimeHelper.toAryValue(this, vertex);
        return vertex;
    }
View Full Code Here

TOP

Related Classes of org.cx4a.rsense.typing.vertex.Vertex

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.