@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = ((Node)yyVals[0+yyTop]); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = ((Node)yyVals[0+yyTop]); if (yyVal == null) yyVal = NilImplicitNode.NIL; return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = ((Node)yyVals[0+yyTop]); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = ((Node)yyVals[0+yyTop]); return yyVal; } };
@Deprecated public boolean checkExpression(Node node) { return value_expr(lexer, node); }
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = support.node_assign(((Node)yyVals[-2+yyTop]), ((Node)yyVals[0+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); ((MultipleAsgnNode)yyVals[-2+yyTop]).setValueNode(((Node)yyVals[0+yyTop])); yyVal = ((MultipleAsgnNode)yyVals[-2+yyTop]); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[-2+yyTop])); yyVal = support.newRescueModNode(((Node)yyVals[-2+yyTop]), ((Node)yyVals[0+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = support.newOpAsgn(support.getPosition(((Node)yyVals[-4+yyTop])), ((Node)yyVals[-4+yyTop]), ((ByteList)yyVals[-3+yyTop]), ((Node)yyVals[0+yyTop]), ((ByteList)yyVals[-2+yyTop]), ((ByteList)yyVals[-1+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = support.newOpAsgn(support.getPosition(((Node)yyVals[-4+yyTop])), ((Node)yyVals[-4+yyTop]), ((ByteList)yyVals[-3+yyTop]), ((Node)yyVals[0+yyTop]), ((ByteList)yyVals[-2+yyTop]), ((ByteList)yyVals[-1+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { if (((Node)yyVals[-1+yyTop]) == null) { support.yyerror("can't define single method for ()."); } else if (((Node)yyVals[-1+yyTop]) instanceof ILiteralNode) { support.yyerror("can't define single method for literals."); } value_expr(lexer, ((Node)yyVals[-1+yyTop])); yyVal = ((Node)yyVals[-1+yyTop]); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = support.newOpAsgn(support.getPosition(((Node)yyVals[-4+yyTop])), ((Node)yyVals[-4+yyTop]), ((ByteList)yyVals[-3+yyTop]), ((Node)yyVals[0+yyTop]), ((ByteList)yyVals[-2+yyTop]), ((ByteList)yyVals[-1+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = support.newArrayNode(support.getPosition(((Node)yyVals[0+yyTop])), ((Node)yyVals[0+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = support.newOpAsgn(support.getPosition(((Node)yyVals[-4+yyTop])), ((Node)yyVals[-4+yyTop]), ((ByteList)yyVals[-3+yyTop]), ((Node)yyVals[0+yyTop]), ((ByteList)yyVals[-2+yyTop]), ((ByteList)yyVals[-1+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[0+yyTop])); yyVal = support.newOpAsgn(support.getPosition(((Node)yyVals[-4+yyTop])), ((Node)yyVals[-4+yyTop]), ((ByteList)yyVals[-3+yyTop]), ((Node)yyVals[0+yyTop]), ((ByteList)yyVals[-2+yyTop]), ((ByteList)yyVals[-1+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { value_expr(lexer, ((Node)yyVals[-2+yyTop])); value_expr(lexer, ((Node)yyVals[0+yyTop])); boolean isLiteral = ((Node)yyVals[-2+yyTop]) instanceof FixnumNode && ((Node)yyVals[0+yyTop]) instanceof FixnumNode; yyVal = new DotNode(support.getPosition(((Node)yyVals[-2+yyTop])), support.makeNullNil(((Node)yyVals[-2+yyTop])), support.makeNullNil(((Node)yyVals[0+yyTop])), true, isLiteral); return yyVal; } };
public Node new_opElementAsgnNode(Node receiverNode, ByteList operatorName, Node argsNode, Node valueNode) { value_expr(lexer, valueNode); ISourcePosition position = lexer.tokline; // FIXME: ruby_sourceline in new lexer. Node newNode = new OpElementAsgnNode(position, receiverNode, symbolID(operatorName), argsNode, valueNode); fixpos(newNode, receiverNode); return newNode; }
public Node getOperatorCallNode(Node firstNode, ByteList operator, Node secondNode, ISourcePosition defaultPosition) { if (defaultPosition != null) { firstNode = checkForNilNode(firstNode, defaultPosition); secondNode = checkForNilNode(secondNode, defaultPosition); } value_expr(lexer, firstNode); value_expr(lexer, secondNode); return new CallNode(firstNode.getPosition(), firstNode, symbolID(operator), new ArrayNode(secondNode.getPosition(), secondNode), null, false); }
public AndNode newAndNode(ISourcePosition position, Node left, Node right) { value_expr(lexer, left); if (left == null && right == null) return new AndNode(position, makeNullNil(left), makeNullNil(right)); return new AndNode(position(left, right), makeNullNil(left), makeNullNil(right)); }
public OrNode newOrNode(ISourcePosition position, Node left, Node right) { value_expr(lexer, left); if (left == null && right == null) return new OrNode(position, makeNullNil(left), makeNullNil(right)); return new OrNode(position(left, right), makeNullNil(left), makeNullNil(right)); }