Uses of Class
org.jruby.ast.OrNode

Packages that use OrNode
org.jruby.ast.visitor   
org.jruby.compiler.ir   
org.jruby.parser   
 

Uses of OrNode in org.jruby.ast.visitor
 

Methods in org.jruby.ast.visitor with parameters of type OrNode
 java.lang.Object NodeVisitor.visitOrNode(OrNode iVisited)
           
 

Uses of OrNode in org.jruby.compiler.ir
 

Methods in org.jruby.compiler.ir with parameters of type OrNode
 Operand IR_Builder.buildOr(OrNode orNode, IR_Scope m)
          private class OpElementAsgnArgumentsCallback implements ArgumentsCallback { private Node node; public OpElementAsgnArgumentsCallback(Node node) { this.node = node; } public int getArity() { switch (node.getNodeType()) { case ARGSCATNODE: case ARGSPUSHNODE: case SPLATNODE: return -1; case ARRAYNODE: ArrayNode arrayNode = (ArrayNode)node; if (arrayNode.size() == 0) { return 0; } else if (arrayNode.size() > 3) { return -1; } else { return ((ArrayNode)node).size(); } default: return 1; } } public void call(IR_Scope m) { if (getArity() == 1) { // if arity 1, just build the one element to save us the array cost build(((ArrayNode)node).get(0), m,true); } else { // build into array buildArguments(node, m); } } }; public Operand buildOpElementAsgnWithOr(Node node, IR_Scope m) { final OpElementAsgnNode opElementAsgnNode = (OpElementAsgnNode) node; CompilerCallback receiverCallback = new CompilerCallback() { public void call(IR_Scope m) { build(opElementAsgnNode.getReceiverNode(), m); } }; ArgumentsCallback argsCallback = new OpElementAsgnArgumentsCallback(opElementAsgnNode.getArgsNode()); CompilerCallback valueCallback = new CompilerCallback() { public void call(IR_Scope m) { build(opElementAsgnNode.getValueNode(), m, true); } }; m.getInvocationCompiler().opElementAsgnWithOr(receiverCallback, argsCallback, valueCallback); // TODO: don't require pop if (!expr) m.consumeCurrentValue(); } public Operand buildOpElementAsgnWithAnd(Node node, IR_Scope m) { final OpElementAsgnNode opElementAsgnNode = (OpElementAsgnNode) node; CompilerCallback receiverCallback = new CompilerCallback() { public void call(IR_Scope m) { build(opElementAsgnNode.getReceiverNode(), m); } }; ArgumentsCallback argsCallback = new OpElementAsgnArgumentsCallback(opElementAsgnNode.getArgsNode()); CompilerCallback valueCallback = new CompilerCallback() { public void call(IR_Scope m) { build(opElementAsgnNode.getValueNode(), m); } }; m.getInvocationCompiler().opElementAsgnWithAnd(receiverCallback, argsCallback, valueCallback); } public Operand buildOpElementAsgnWithMethod(Node node, IR_Scope m) { final OpElementAsgnNode opElementAsgnNode = (OpElementAsgnNode) node; CompilerCallback receiverCallback = new CompilerCallback() { public void call(IR_Scope m) { build(opElementAsgnNode.getReceiverNode(), m); } }; ArgumentsCallback argsCallback = setupCallArgs(opElementAsgnNode.getArgsNode()); CompilerCallback valueCallback = new CompilerCallback() { public void call(IR_Scope m) { build(opElementAsgnNode.getValueNode(), m); } }; m.getInvocationCompiler().opElementAsgnWithMethod(receiverCallback, argsCallback, valueCallback, opElementAsgnNode.getOperatorName()); }
 

Uses of OrNode in org.jruby.parser
 

Methods in org.jruby.parser that return OrNode
 OrNode ParserSupport.newOrNode(ISourcePosition position, Node left, Node right)
           
 



Copyright © 2002-2009 JRuby Team. All Rights Reserved.