@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_END|EXPR_ENDARG); yyVal = ((ByteList)yyVals[0+yyTop]); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_BEG); lexer.commandStart = true; return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_ENDARG); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_BEG); return yyVal; } };
private int comma(int c) throws IOException { setState(EXPR_BEG|EXPR_LABEL); yaccValue = COMMA; return c; }
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_FNAME|EXPR_FITEM); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_ENDARG); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { yyVal = ((ArgsNode)yyVals[-1+yyTop]); lexer.setState(EXPR_BEG); lexer.commandStart = true; return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_BEG); support.initTopLocalVariables(); return yyVal; } };
private int considerComplex(int token, int suffix) { int type; if ((suffix & SUFFIX_I) == 0) { type = token; } else { yaccValue = newComplexNode((NumericNode) yaccValue); type = RubyParser.tIMAGINARY; } setState(EXPR_END|EXPR_ENDARG); return type; }
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_BEG); support.initTopLocalVariables(); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { yyVal = lexer.getState(); lexer.setState(EXPR_BEG); return yyVal; } };
private int rightBracket() { parenNest--; conditionState.restart(); cmdArgumentState.restart(); setState(EXPR_END); yaccValue = RBRACKET; return RubyParser.tRBRACK; }
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setState(EXPR_FNAME); yyVal = support.isInDef(); support.setInDef(true); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { yyVal = lexer.getStrTerm(); lexer.setStrTerm(null); lexer.setState(EXPR_BEG); return yyVal; } };
private int rightCurly() { conditionState.restart(); cmdArgumentState.restart(); setState(EXPR_END); yaccValue = RCURLY; int tok = braceNest == 0 ? RubyParser.tSTRING_DEND : RubyParser.tRCURLY; braceNest--; return tok; }
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { support.pushLocalScope(); lexer.setState(EXPR_ENDFN|EXPR_LABEL); /* force for args */ yyVal = lexer.getCurrentArg(); lexer.setCurrentArg(null); return yyVal; } };
private int identifierToken(int result, ByteList value) { Ruby runtime = parserSupport.getConfiguration().getRuntime(); String id = runtime.newSymbol(value).idString(); if (result == RubyParser.tIDENTIFIER && !isLexState(last_state, EXPR_DOT|EXPR_FNAME) && parserSupport.getCurrentScope().isDefined(id) >= 0) { setState(EXPR_END|EXPR_LABEL); } yaccValue = value; return result; }