protected int restore(RubyLexer lexer) { lexer.heredoc_restore(this); lexer.setStrTerm(new StringTerm(flags | STR_FUNC_TERM, 0, 0, line)); // weird way to terminate heredoc. return EOF; }
protected int restore(RubyLexer lexer) { lexer.heredoc_restore(this); lexer.setStrTerm(new StringTerm(flags | STR_FUNC_TERM, 0, 0, line)); // weird way to terminate heredoc. return EOF; }
@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; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.setStrTerm(((StrTerm)yyVals[-1+yyTop])); yyVal = new EvStrNode(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) { lexer.setStrTerm(((StrTerm)yyVals[-1+yyTop])); yyVal = new EvStrNode(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) { yyVal = lexer.getStrTerm(); lexer.setStrTerm(null); lexer.setState(EXPR_BEG); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { yyVal = lexer.getStrTerm(); lexer.setStrTerm(null); lexer.getConditionState().stop(); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { yyVal = lexer.getStrTerm(); lexer.setStrTerm(null); lexer.getConditionState().stop(); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.getConditionState().restart(); lexer.setStrTerm(((StrTerm)yyVals[-6+yyTop])); lexer.getCmdArgumentState().reset(((Long)yyVals[-5+yyTop]).longValue()); lexer.setState(((Integer)yyVals[-4+yyTop])); lexer.setBraceNest(((Integer)yyVals[-3+yyTop])); lexer.setHeredocIndent(((Integer)yyVals[-2+yyTop])); lexer.setHeredocLineIndent(-1); yyVal = support.newEvStrNode(support.getPosition(((Node)yyVals[-1+yyTop])), ((Node)yyVals[-1+yyTop])); return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { lexer.getConditionState().restart(); lexer.setStrTerm(((StrTerm)yyVals[-6+yyTop])); lexer.getCmdArgumentState().reset(((Long)yyVals[-5+yyTop]).longValue()); lexer.setState(((Integer)yyVals[-4+yyTop])); lexer.setBraceNest(((Integer)yyVals[-3+yyTop])); lexer.setHeredocIndent(((Integer)yyVals[-2+yyTop])); lexer.setHeredocLineIndent(-1); yyVal = support.newEvStrNode(support.getPosition(((Node)yyVals[-1+yyTop])), ((Node)yyVals[-1+yyTop])); return yyVal; } };
lexer.setState(EXPR_END|EXPR_ENDARG); lexer.setValue("" + end); lexer.setStrTerm(null); return ((flags & STR_FUNC_REGEXP) != 0) ? RubyParser.tREGEXP_END : RubyParser.tSTRING_END;
lexer.setState(EXPR_END|EXPR_ENDARG); lexer.setValue("" + end); lexer.setStrTerm(null); return ((flags & STR_FUNC_REGEXP) != 0) ? RubyParser.tREGEXP_END : RubyParser.tSTRING_END;
private int endFound(RubyLexer lexer) throws IOException { if ((flags & STR_FUNC_QWORDS) != 0) { flags |= STR_FUNC_TERM; lexer.pushback(0); lexer.getPosition(); return ' '; } lexer.setStrTerm(null); if ((flags & STR_FUNC_REGEXP) != 0) { RegexpOptions options = lexer.parseRegexpFlags(); ByteList regexpBytelist = ByteList.create(""); lexer.setState(EXPR_END | EXPR_ENDARG); lexer.setValue(new RegexpNode(lexer.getPosition(), regexpBytelist, options)); return RubyParser.tREGEXP_END; } if ((flags & STR_FUNC_LABEL) != 0 && lexer.isLabelSuffix()) { lexer.nextc(); lexer.setState(EXPR_BEG | EXPR_LABEL); return RubyParser.tLABEL_END; } lexer.setState(EXPR_END | EXPR_ENDARG); lexer.setValue("" + end); return RubyParser.tSTRING_END; }
private int endFound(RubyLexer lexer) throws IOException { if ((flags & STR_FUNC_QWORDS) != 0) { flags |= STR_FUNC_TERM; lexer.pushback(0); lexer.getPosition(); return ' '; } lexer.setStrTerm(null); if ((flags & STR_FUNC_REGEXP) != 0) { RegexpOptions options = lexer.parseRegexpFlags(); ByteList regexpBytelist = ByteList.create(""); lexer.setState(EXPR_END | EXPR_ENDARG); lexer.setValue(new RegexpNode(lexer.getPosition(), regexpBytelist, options)); return RubyParser.tREGEXP_END; } if ((flags & STR_FUNC_LABEL) != 0 && lexer.isLabelSuffix()) { lexer.nextc(); lexer.setState(EXPR_BEG | EXPR_LABEL); return RubyParser.tLABEL_END; } lexer.setState(EXPR_END | EXPR_ENDARG); lexer.setValue("" + end); return RubyParser.tSTRING_END; }
lexer.setStrTerm(null); lexer.setState(EXPR_END); return RubyParser.tSTRING_END;
lexer.setStrTerm(null); lexer.setState(EXPR_END); return RubyParser.tSTRING_END;