public BackRefNode(ISourcePosition position, int type) { super(position); this.type = (char) type; this.definedMessage = DefinedMessage.byText("$" + (char)type); }
case MULTIPLEASGNNODE: case OPASGNNODE: case OPASGNANDNODE: case OPASGNORNODE: case OPELEMENTASGNNODE: case INSTASGNNODE: return new FrozenString(DefinedMessage.ASSIGNMENT.getText()); case ORNODE: case ANDNODE: case DREGEXPNODE: case DSTRNODE: return new FrozenString(DefinedMessage.EXPRESSION.getText()); case FALSENODE: return new FrozenString(DefinedMessage.FALSE.getText()); case LOCALVARNODE: case DVARNODE: return new FrozenString(DefinedMessage.LOCAL_VARIABLE.getText()); case MATCH2NODE: case MATCH3NODE: return new FrozenString(DefinedMessage.METHOD.getText()); case NILNODE: return new FrozenString(DefinedMessage.NIL.getText()); case SELFNODE: return new FrozenString(DefinedMessage.SELF.getText()); case TRUENODE: return new FrozenString(DefinedMessage.TRUE.getText()); case ARRAYNODE: { // If all elts of array are defined the array is as well ArrayNode array = (ArrayNode) node; addInstr(new CopyInstr(tmpVar, new FrozenString(DefinedMessage.EXPRESSION.getText()))); addInstr(new JumpInstr(doneLabel)); addInstr(new LabelInstr(undefLabel)); createTemporaryVariable(), IS_DEFINED_BACKREF, new Operand[] {new FrozenString(DefinedMessage.GLOBAL_VARIABLE.getText())} new Operand[] {
public void pushDefinedMessage(DefinedMessage definedMessage) { loadRuntime(); method.getstatic(p(DefinedMessage.class), definedMessage.name(), ci(DefinedMessage.class)); method.invokevirtual(p(Ruby.class), "getDefinedMessage", sig(RubyString.class, DefinedMessage.class)); }
case MULTIPLEASGNNODE: case OPASGNNODE: case OPASGNANDNODE: case OPASGNORNODE: case OPELEMENTASGNNODE: case INSTASGNNODE: return new FrozenString(DefinedMessage.ASSIGNMENT.getText()); case ORNODE: case ANDNODE: case DREGEXPNODE: case DSTRNODE: return new FrozenString(DefinedMessage.EXPRESSION.getText()); case FALSENODE: return new FrozenString(DefinedMessage.FALSE.getText()); case LOCALVARNODE: case DVARNODE: return new FrozenString(DefinedMessage.LOCAL_VARIABLE.getText()); case MATCH2NODE: case MATCH3NODE: return new FrozenString(DefinedMessage.METHOD.getText()); case NILNODE: return new FrozenString(DefinedMessage.NIL.getText()); case SELFNODE: return new FrozenString(DefinedMessage.SELF.getText()); case TRUENODE: return new FrozenString(DefinedMessage.TRUE.getText()); case ARRAYNODE: { // If all elts of array are defined the array is as well ArrayNode array = (ArrayNode) node; addInstr(new CopyInstr(tmpVar, new FrozenString(DefinedMessage.EXPRESSION.getText()))); addInstr(new JumpInstr(doneLabel)); addInstr(new LabelInstr(undefLabel)); createTemporaryVariable(), IS_DEFINED_BACKREF, new Operand[] {new FrozenString(DefinedMessage.GLOBAL_VARIABLE.getText())} new Operand[] {
public void pushDefinedMessage(DefinedMessage definedMessage) { loadRuntime(); method.getstatic(p(DefinedMessage.class), definedMessage.name(), ci(DefinedMessage.class)); method.invokevirtual(p(Ruby.class), "getDefinedMessage", sig(RubyString.class, DefinedMessage.class)); }
public BackRefNode(ISourcePosition position, int type) { super(position, false); this.type = (char) type; DefinedMessage.byText("$" + (char)type); }
public BackRefNode(ISourcePosition position, int type) { super(position); this.type = (char) type; this.definedMessage = DefinedMessage.byText("$" + (char)type); }
public BackRefNode(ISourcePosition position, int type) { super(position, false); this.type = (char) type; DefinedMessage.byText("$" + (char)type); }
public NthRefNode(ISourcePosition position, int matchNumber) { super(position); this.matchNumber = matchNumber; this.definedMessage = DefinedMessage.byText("$" + matchNumber); }
public NthRefNode(ISourcePosition position, int matchNumber) { super(position); this.matchNumber = matchNumber; this.definedMessage = DefinedMessage.byText("$" + matchNumber); }
public void branch(BodyCompiler context) { context.pushDefinedMessage(DefinedMessage.byText("$" + ((BackRefNode) node).getType())); } },
public void branch(BodyCompiler context) { context.pushDefinedMessage(DefinedMessage.byText("$" + ((NthRefNode) node).getMatchNumber())); } },
public void branch(BodyCompiler context) { context.pushDefinedMessage(DefinedMessage.byText("$" + ((NthRefNode) node).getMatchNumber())); } },
public void branch(BodyCompiler context) { context.pushDefinedMessage(DefinedMessage.byText("$" + ((BackRefNode) node).getType())); } },
public void compileGetArgumentDefinition(final Node node, BodyCompiler context, String type) { if (node == null) { context.pushDefinedMessage(DefinedMessage.byText(type)); } else if (node instanceof ArrayNode) { Object endToken = context.getNewEnding(); for (int i = 0; i < ((ArrayNode) node).size(); i++) { Node iterNode = ((ArrayNode) node).get(i); compileGetDefinition(iterNode, context); context.ifNull(endToken); } context.pushDefinedMessage(DefinedMessage.byText(type)); Object realToken = context.getNewEnding(); context.go(realToken); context.setEnding(endToken); context.pushNull(); context.setEnding(realToken); } else { compileGetDefinition(node, context); Object endToken = context.getNewEnding(); context.ifNull(endToken); context.pushDefinedMessage(DefinedMessage.byText(type)); Object realToken = context.getNewEnding(); context.go(realToken); context.setEnding(endToken); context.pushNull(); context.setEnding(realToken); } }
public void compileGetArgumentDefinition(final Node node, BodyCompiler context, String type) { if (node == null) { context.pushDefinedMessage(DefinedMessage.byText(type)); } else if (node instanceof ArrayNode) { Object endToken = context.getNewEnding(); for (int i = 0; i < ((ArrayNode) node).size(); i++) { Node iterNode = ((ArrayNode) node).get(i); compileGetDefinition(iterNode, context); context.ifNull(endToken); } context.pushDefinedMessage(DefinedMessage.byText(type)); Object realToken = context.getNewEnding(); context.go(realToken); context.setEnding(endToken); context.pushNull(); context.setEnding(realToken); } else { compileGetDefinition(node, context); Object endToken = context.getNewEnding(); context.ifNull(endToken); context.pushDefinedMessage(DefinedMessage.byText(type)); Object realToken = context.getNewEnding(); context.go(realToken); context.setEnding(endToken); context.pushNull(); context.setEnding(realToken); } }