@Override public Object execute(ParserSupport support, RubyYaccLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { ISourcePosition position = ((Token)yyVals[-2+yyTop]).getPosition(); if (((Node)yyVals[-1+yyTop]) == null) { yyVal = new XStrNode(position, null); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); ((Node)yyVal).setPosition(position); } else { yyVal = new DXStrNode(position).add(((Node)yyVals[-1+yyTop])); } return yyVal; } };
@Override public Object execute(ParserSupport support, RubyYaccLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { ISourcePosition position = ((Token)yyVals[-2+yyTop]).getPosition(); if (((Node)yyVals[-1+yyTop]) == null) { yyVal = new XStrNode(position, null); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); ((Node)yyVal).setPosition(position); } else { yyVal = new DXStrNode(position).add(((Node)yyVals[-1+yyTop])); } return yyVal; } };
@Override public Object execute(ParserSupport support, RubyYaccLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { ISourcePosition position = ((Token)yyVals[-2+yyTop]).getPosition(); if (((Node)yyVals[-1+yyTop]) == null) { yyVal = new XStrNode(position, null); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); ((Node)yyVal).setPosition(position); } else { yyVal = new DXStrNode(position).add(((Node)yyVals[-1+yyTop])); } return yyVal; } };
@Override public Object execute(ParserSupport support, RubyYaccLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { ISourcePosition position = ((Token)yyVals[-2+yyTop]).getPosition(); if (((Node)yyVals[-1+yyTop]) == null) { yyVal = new XStrNode(position, null); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); ((Node)yyVal).setPosition(position); } else { yyVal = new DXStrNode(position).add(((Node)yyVals[-1+yyTop])); } return yyVal; } };
@Override public Object execute(ParserSupport support, RubyYaccLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { ISourcePosition position = ((Token)yyVals[-2+yyTop]).getPosition(); if (((Node)yyVals[-1+yyTop]) == null) { yyVal = new XStrNode(position, null); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); ((Node)yyVal).setPosition(position); } else { yyVal = new DXStrNode(position).add(((Node)yyVals[-1+yyTop])); } return yyVal; } };
@Override public Object execute(ParserSupport support, RubyYaccLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { ISourcePosition position = ((Token)yyVals[-2+yyTop]).getPosition(); if (((Node)yyVals[-1+yyTop]) == null) { yyVal = new XStrNode(position, null); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); ((Node)yyVal).setPosition(position); } else { yyVal = new DXStrNode(position).add(((Node)yyVals[-1+yyTop])); } return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { ISourcePosition position = support.getPosition(((Node)yyVals[-1+yyTop])); lexer.heredoc_dedent(((Node)yyVals[-1+yyTop])); lexer.setHeredocIndent(0); if (((Node)yyVals[-1+yyTop]) == null) { yyVal = new XStrNode(position, null, StringSupport.CR_7BIT); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone(), ((StrNode)yyVals[-1+yyTop]).getCodeRange()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); ((Node)yyVal).setPosition(position); } else { yyVal = new DXStrNode(position).add(((Node)yyVals[-1+yyTop])); } return yyVal; } };
@Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) { ISourcePosition position = support.getPosition(((Node)yyVals[-1+yyTop])); lexer.heredoc_dedent(((Node)yyVals[-1+yyTop])); lexer.setHeredocIndent(0); if (((Node)yyVals[-1+yyTop]) == null) { yyVal = new XStrNode(position, null, StringSupport.CR_7BIT); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone(), ((StrNode)yyVals[-1+yyTop]).getCodeRange()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); ((Node)yyVal).setPosition(position); } else { yyVal = new DXStrNode(position).add(((Node)yyVals[-1+yyTop])); } return yyVal; } };
return new RegexpNode(position, newValue, options.withoutOnce()); } else if (contents instanceof StrNode) { ByteList meat = (ByteList) ((StrNode) contents).getValue().clone(); regexpFragmentCheck(end, meat); checkRegexpSyntax(meat, options.withoutOnce());
return new RegexpNode(position, newValue, options.withoutOnce()); } else if (contents instanceof StrNode) { ByteList meat = (ByteList) ((StrNode) contents).getValue().clone(); lexer.checkRegexpFragment(runtime, meat, options); lexer.checkRegexpSyntax(runtime, meat, options.withoutOnce());
return new RegexpNode(position, newValue, options.withoutOnce()); } else if (contents instanceof StrNode) { ByteList meat = (ByteList) ((StrNode) contents).getValue().clone(); lexer.checkRegexpFragment(runtime, meat, options); lexer.checkRegexpSyntax(runtime, meat, options.withoutOnce());
return new RegexpNode(position, newValue, options.withoutOnce()); } else if (contents instanceof StrNode) { ByteList meat = (ByteList) ((StrNode) contents).getValue().clone(); regexpFragmentCheck(end, meat); checkRegexpSyntax(meat, options.withoutOnce());
yyVal = new XStrNode(position, null); } else if (((Node)yyVals[-1+yyTop]) instanceof StrNode) { yyVal = new XStrNode(position, (ByteList) ((StrNode)yyVals[-1+yyTop]).getValue().clone()); } else if (((Node)yyVals[-1+yyTop]) instanceof DStrNode) { yyVal = new DXStrNode(position, ((DStrNode)yyVals[-1+yyTop])); yyVal = new RegexpNode(getPosition(((Token)yyVals[-2+yyTop])), ByteList.create(""), options & ~ReOptions.RE_OPTION_ONCE); } else if (node instanceof StrNode) { yyVal = new RegexpNode(((Node)yyVals[-1+yyTop]).getPosition(), (ByteList) ((StrNode) node).getValue().clone(), options & ~ReOptions.RE_OPTION_ONCE); } else if (node instanceof DStrNode) { yyVal = new DRegexpNode(getPosition(((Token)yyVals[-2+yyTop])), (DStrNode) node, options, (options & ReOptions.RE_OPTION_ONCE) != 0);