private int leftParen(boolean spaceSeen) throws IOException { int result; if (isBEG()) { result = RipperParser.tLPAREN; } else if (isSpaceArg('(', spaceSeen)) { result = RipperParser.tLPAREN_ARG; } else { result = RipperParser.tLPAREN2; } parenNest++; conditionState.stop(); cmdArgumentState.stop(); setState(EXPR_BEG|EXPR_LABEL); return result; }
private int leftParen(boolean spaceSeen) throws IOException { int result; if (isBEG()) { result = RipperParser.tLPAREN; } else if (isSpaceArg('(', spaceSeen)) { result = RipperParser.tLPAREN_ARG; } else { result = RipperParser.tLPAREN2; } parenNest++; conditionState.stop(); cmdArgumentState.stop(); setState(EXPR_BEG|EXPR_LABEL); return result; }
private int leftParen(boolean spaceSeen) throws IOException { int result; if (isBEG()) { result = RubyParser.tLPAREN; } else if (isSpaceArg('(', spaceSeen)) { result = RubyParser.tLPAREN_ARG; } else { result = RubyParser.tLPAREN2; } parenNest++; conditionState.stop(); cmdArgumentState.stop(); setState(EXPR_BEG|EXPR_LABEL); yaccValue = getPosition(); return result; }
private int leftParen(boolean spaceSeen) throws IOException { int result; if (isBEG()) { result = RubyParser.tLPAREN; } else if (isSpaceArg('(', spaceSeen)) { result = RubyParser.tLPAREN_ARG; } else { result = RubyParser.tLPAREN2; } parenNest++; conditionState.stop(); cmdArgumentState.stop(); setState(EXPR_BEG|EXPR_LABEL); yaccValue = getPosition(); return result; }
private int leftCurly() { if (!isOneEight && leftParenBegin > 0 && leftParenBegin == parenNest) { setState(LexState.EXPR_BEG); leftParenBegin = 0; parenNest--; conditionState.stop(); cmdArgumentState.stop(); yaccValue = new Token("{", getPosition()); return Tokens.tLAMBEG; } char c; if (isARG() || lex_state == LexState.EXPR_END || (!isOneEight && lex_state == LexState.EXPR_ENDFN)) { // block (primary) c = Tokens.tLCURLY; } else if (lex_state == LexState.EXPR_ENDARG) { // block (expr) c = Tokens.tLBRACE_ARG; } else { // hash c = Tokens.tLBRACE; } conditionState.stop(); cmdArgumentState.stop(); setState(LexState.EXPR_BEG); yaccValue = new Token("{", getPosition()); if (!isOneEight && c != Tokens.tLBRACE) commandStart = true; return c; }
private int leftCurly() { if (!isOneEight && leftParenBegin > 0 && leftParenBegin == parenNest) { setState(LexState.EXPR_BEG); leftParenBegin = 0; parenNest--; conditionState.stop(); cmdArgumentState.stop(); yaccValue = new Token("{", getPosition()); return Tokens.tLAMBEG; } char c; if (isARG() || lex_state == LexState.EXPR_END || (!isOneEight && lex_state == LexState.EXPR_ENDFN)) { // block (primary) c = Tokens.tLCURLY; } else if (lex_state == LexState.EXPR_ENDARG) { // block (expr) c = Tokens.tLBRACE_ARG; } else { // hash c = Tokens.tLBRACE; } conditionState.stop(); cmdArgumentState.stop(); setState(LexState.EXPR_BEG); yaccValue = new Token("{", getPosition()); if (!isOneEight && c != Tokens.tLBRACE) commandStart = true; return c; }
@Override public Object execute(RipperParser p, Object yyVal, Object[] yyVals, int yyTop) { yyVal = p.getStrTerm(); p.setStrTerm(null); p.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) { yyVal = lexer.getStrTerm(); lexer.setStrTerm(null); lexer.getConditionState().stop(); return yyVal; } };
@Override public Object execute(RipperParser p, Object yyVal, Object[] yyVals, int yyTop) { yyVal = p.getStrTerm(); p.setStrTerm(null); p.getConditionState().stop(); return yyVal; } };
private int leftCurly() { braceNest++; int leftParenBegin = getLeftParenBegin(); if (leftParenBegin > 0 && leftParenBegin == parenNest) { setState(EXPR_BEG); setLeftParenBegin(0); parenNest--; conditionState.stop(); cmdArgumentState.stop(); yaccValue = LCURLY; return RubyParser.tLAMBEG; } char c; if (isLexState(lex_state, EXPR_LABELED)) { c = RubyParser.tLBRACE; } else if (isLexState(lex_state, EXPR_ARG_ANY|EXPR_END|EXPR_ENDFN)) { // block (primary) c = RubyParser.tLCURLY; } else if (isLexState(lex_state, EXPR_ENDARG)) { // block (expr) c = RubyParser.tLBRACE_ARG; } else { // hash c = RubyParser.tLBRACE; } conditionState.stop(); cmdArgumentState.stop(); setState(c == RubyParser.tLBRACE_ARG ? EXPR_BEG : EXPR_BEG|EXPR_LABEL); if (c != RubyParser.tLBRACE) commandStart = true; yaccValue = getPosition(); return c; }
private int leftCurly() { braceNest++; int leftParenBegin = getLeftParenBegin(); if (leftParenBegin > 0 && leftParenBegin == parenNest) { setState(EXPR_BEG); setLeftParenBegin(0); parenNest--; conditionState.stop(); cmdArgumentState.stop(); return RipperParser.tLAMBEG; } char c; if (isLexState(lex_state, EXPR_LABELED)) { c = RipperParser.tLBRACE; } else if (isLexState(lex_state, EXPR_ARG_ANY|EXPR_END|EXPR_ENDFN)) { // block (primary) c = RipperParser.tLCURLY; } else if (isLexState(lex_state, EXPR_ENDARG)) { // block (expr) c = RipperParser.tLBRACE_ARG; } else { // hash c = RipperParser.tLBRACE; } conditionState.stop(); cmdArgumentState.stop(); setState(EXPR_BEG); setState(c == RipperParser.tLBRACE_ARG ? EXPR_BEG : EXPR_BEG|EXPR_LABEL); if (c != RipperParser.tLBRACE) commandStart = true; return c; }
private int leftBracket(boolean spaceSeen) throws IOException { parenNest++; int c = '['; if (isAfterOperator()) { if ((c = nextc()) == ']') { setState(EXPR_ARG); if (peek('=')) { nextc(); return RipperParser.tASET; } return RipperParser.tAREF; } pushback(c); setState(EXPR_ARG|EXPR_LABEL); return '['; } else if (isBEG() || (isARG() && (spaceSeen || isLexState(lex_state, EXPR_LABELED)))) { c = RipperParser.tLBRACK; } setState(EXPR_BEG|EXPR_LABEL); conditionState.stop(); cmdArgumentState.stop(); yaccValue = "["; return c; }
private int leftBracket(boolean spaceSeen) throws IOException { parenNest++; int c = '['; if (isAfterOperator()) { if ((c = nextc()) == ']') { setState(EXPR_ARG); if (peek('=')) { nextc(); return RipperParser.tASET; } return RipperParser.tAREF; } pushback(c); setState(EXPR_ARG|EXPR_LABEL); return '['; } else if (isBEG() || (isARG() && (spaceSeen || isLexState(lex_state, EXPR_LABELED)))) { c = RipperParser.tLBRACK; } setState(EXPR_BEG|EXPR_LABEL); conditionState.stop(); cmdArgumentState.stop(); yaccValue = "["; return c; }