Package org.cx4a.rsense.typing.vertex

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


            for (int i = 0; i < argVertices.length; i++) {
                argVertices[i] = createVertex(argNodes.get(i));
            }
        }

        CallVertex vertex = new CallVertex(node, receiverVertex, argVertices, null);
        return RuntimeHelper.call(this, vertex);
    }
View Full Code Here


   
    public Object visitCallNode(CallNode node) {
        Vertex receiverVertex = createVertex(node.getReceiverNode());
        Vertex[] argVertices = RuntimeHelper.setupCallArgs(this, node.getArgsNode());
        Block block = RuntimeHelper.setupCallBlock(this, node.getIterNode());
        CallVertex vertex = new CallVertex(node, receiverVertex, argVertices, block);
        return RuntimeHelper.call(this, vertex);
    }
View Full Code Here

    }
   
    public Object visitFCallNode(FCallNode node) {
        Vertex[] argVertices = RuntimeHelper.setupCallArgs(this, node.getArgsNode());
        Block block = RuntimeHelper.setupCallBlock(this, node.getIterNode());
        CallVertex vertex = new CallVertex(node, createFreeSingleTypeVertex(context.getFrameSelf()), argVertices, block);
        vertex.setPrivateVisibility(true);
        return RuntimeHelper.call(this, vertex);
    }
View Full Code Here

   
    public Object visitForNode(ForNode node) {
        Vertex vertex = createEmptyVertex(node);
        Vertex receiverVertex = createVertex(node.getIterNode());
        Block block = new Proc(runtime, node.getVarNode(), node.getBodyNode(), context.getCurrentFrame(), context.getCurrentScope());
        CallVertex callVertex = new CallVertex(node, "each", receiverVertex, null, block);
        RuntimeHelper.call(this, callVertex);
        addEdgeAndUpdate(vertex, callVertex);
        return vertex;
    }
View Full Code Here

        if (operator.equals("||") || operator.equals("&&")) {
            // do nothing
            value = src;
        } else {
            CallVertex getter = new CallVertex(node.getReceiverNode(), "[]", receiverVertex, argVertices, null);
            CallVertex op = new CallVertex(node, operator, RuntimeHelper.call(this, getter), new Vertex[] {src}, null);
            value = RuntimeHelper.call(this, op);
        }
      
        Vertex[] expandedArgs = new Vertex[argVertices.length + 1];
        System.arraycopy(argVertices, 0, expandedArgs, 0, argVertices.length);
        expandedArgs[expandedArgs.length - 1] = value;
        CallVertex setter = new CallVertex(node, "[]=", receiverVertex, expandedArgs, null);
        return RuntimeHelper.call(this, setter);
    }
View Full Code Here

        Vertex value;
        if (operator.equals("||") || operator.equals("&&")) {
            // do nothing
            value = src;
        } else {
            CallVertex getter = new CallVertex(node.getValueNode(), var, receiverVertex, null, null);
            CallVertex op = new CallVertex(node.getValueNode(), operator, RuntimeHelper.call(this, getter), new Vertex[] {src}, null);
            value = RuntimeHelper.call(this, op);
        }
       
        CallVertex setter = new CallVertex(node.getValueNode(), varAsgn, receiverVertex, new Vertex[] {value}, null);
        return RuntimeHelper.call(this, setter);
    }
View Full Code Here

                argVertices[i] = createVertex(argNodes.get(i));
            }
        }
       
        Block block = RuntimeHelper.setupCallBlock(this, node.getIterNode());
        CallVertex vertex = new CallVertex(node, context.getCurrentFrame().getName(), receiverVertex, argVertices, block);
        vertex.setPrivateVisibility(true);
        return RuntimeHelper.callSuper(this, vertex);
    }
View Full Code Here

        RuntimeHelper.aliasGlobalVaraibles(this, node.getNewName(), node.getOldName());
        return Vertex.EMPTY;
    }
   
    public Object visitVCallNode(VCallNode node) {
        CallVertex vertex = new CallVertex(node, createFreeSingleTypeVertex(context.getFrameSelf()), null, null);
        vertex.setPrivateVisibility(true);
        return RuntimeHelper.call(this, vertex);
    }
View Full Code Here

            for (int i = 0; i < args.length; i++) {
                argVertices[i] = createFreeSingleTypeVertex(args[i]);
            }
           
            Block block = RuntimeHelper.setupCallBlock(this, node.getIterNode());
            CallVertex vertex = new CallVertex(node, context.getCurrentFrame().getName(), receiverVertex, argVertices, block);
            vertex.setPrivateVisibility(true);
            return RuntimeHelper.callSuper(this, vertex);
        }
        return Vertex.EMPTY;
    }
View Full Code Here

        TypeSet typeSet = new TypeSet();
        for (IRubyObject object : vertex.getTypeSet()) {
            if (object.isKindOf(runtime.getArray())) {
                typeSet.add(object);
            } else {
                CallVertex callVertex = new CallVertex(vertex.getNode(), "to_a", vertex, null, null);
                for (IRubyObject array : call(graph, callVertex).getTypeSet()) {
                    if (array.isKindOf(runtime.getArray())) {
                        typeSet.add(array);
                    } else {
                        Logger.warn("to_a should be return Array");
View Full Code Here

TOP

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

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.