@Override @SuppressWarnings("unchecked") public void visitGStringExpression(GStringExpression expr) { replaceAllExprs(expr.getStrings()); replaceAllExprs(expr.getValues()); }
@Override @SuppressWarnings("unchecked") public void visitGStringExpression(GStringExpression expr) { GStringExpression conversion = new GStringExpression( expr.getText(), expr.getStrings(), convertAll(expr.getValues())); conversion.setSourcePosition(expr); result = record(conversion); }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new GStringExpression( verbatimText, transformExpressions(strings, transformer, ConstantExpression.class), transformExpressions(values, transformer)); ret.setSourcePosition(this); ret.copyNodeMetaData(this); return ret; }
public void visitGStringExpression(GStringExpression expression) { MethodVisitor mv = controller.getMethodVisitor(); mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/GStringImpl"); mv.visitInsn(DUP); int size = expression.getValues().size(); BytecodeHelper.pushConstant(mv, size); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); BytecodeHelper.pushConstant(mv, i); expression.getValue(i).visit(this); controller.getOperandStack().box(); mv.visitInsn(AASTORE); } controller.getOperandStack().remove(size); List strings = expression.getStrings(); size = strings.size(); BytecodeHelper.pushConstant(mv, size); mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); BytecodeHelper.pushConstant(mv, i); controller.getOperandStack().pushConstant((ConstantExpression) strings.get(i)); controller.getOperandStack().box(); mv.visitInsn(AASTORE); } controller.getOperandStack().remove(size); mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/GStringImpl", "<init>", "([Ljava/lang/Object;[Ljava/lang/String;)V", false); controller.getOperandStack().push(ClassHelper.GSTRING_TYPE); }
protected static void setPropertyGetterDispatcher(BlockStatement block, Expression thiz, Parameter[] parameters) { List<ConstantExpression> gStringStrings = new ArrayList<ConstantExpression>(); gStringStrings.add(new ConstantExpression("")); gStringStrings.add(new ConstantExpression("")); List<Expression> gStringValues = new ArrayList<Expression>(); gStringValues.add(new VariableExpression(parameters[0])); block.addStatement( new ReturnStatement( new PropertyExpression( thiz, new GStringExpression("$name", gStringStrings, gStringValues) ) ) ); }
public void visitGStringExpression(GStringExpression expression) { super.visitGStringExpression(expression); for (ConstantExpression ce : expression.getStrings()) { checkStringExceedingMaximumLength(ce); } }
throw new ASTRuntimeException(node, "\n\"" + ((GStringExpression) leftExpression).getText() + "\" is a GString expression, but it should be a variable expression"); } else if (leftExpression instanceof MethodCallExpression) { throw new ASTRuntimeException(node, "\n\"" + ((MethodCallExpression) leftExpression).getText() + "\" is a method call expression, but it should be a variable expression");
GStringExpression compositeStringExpr = new GStringExpression("hello ${user}!"); compositeStringExpr.addString(new ConstantExpression("Hello ")); compositeStringExpr.addValue(new VariableExpression("user")); compositeStringExpr.addString(new ConstantExpression("!")); BlockStatement block = new BlockStatement(); block.addStatement(
@Override @SuppressWarnings("unchecked") public void visitGStringExpression(GStringExpression expr) { result = new ExpressionInfo( TextRegion.of(expr), TextPosition.startOf(expr), "\"\"", convertAll(expr.getValues()) ).setRelevant(false); }
public void visitGStringExpression(GStringExpression expression) { mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/GStringImpl"); mv.visitInsn(DUP); int size = expression.getValues().size(); helper.pushConstant(size); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); helper.pushConstant(i); visitAndAutoboxBoolean(expression.getValue(i)); mv.visitInsn(AASTORE); } List strings = expression.getStrings(); size = strings.size(); helper.pushConstant(size); mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); helper.pushConstant(i); mv.visitLdcInsn(((ConstantExpression) strings.get(i)).getValue()); mv.visitInsn(AASTORE); } mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/GStringImpl", "<init>", "([Ljava/lang/Object;[Ljava/lang/String;)V"); }
protected static void setPropertySetterDispatcher(BlockStatement block, Expression thiz, Parameter[] parameters) { List<ConstantExpression> gStringStrings = new ArrayList<ConstantExpression>(); gStringStrings.add(new ConstantExpression("")); gStringStrings.add(new ConstantExpression("")); List<Expression> gStringValues = new ArrayList<Expression>(); gStringValues.add(new VariableExpression(parameters[0])); block.addStatement( new ExpressionStatement( new BinaryExpression( new PropertyExpression( thiz, new GStringExpression("$name", gStringStrings, gStringValues) ), Token.newSymbol(Types.ASSIGN, -1, -1), new VariableExpression(parameters[1]) ) ) ); }
public void visitGStringExpression(GStringExpression expression) { super.visitGStringExpression(expression); for (Iterator it = expression.getStrings().iterator(); it.hasNext();) { checkStringExceedingMaximumLength((ConstantExpression) it.next()); } }
throw new ASTRuntimeException(node, "\n\"" + ((GStringExpression) leftExpression).getText() + "\" is a GString expression, but it should be a variable expression"); } else if (leftExpression instanceof MethodCallExpression) { throw new ASTRuntimeException(node, "\n\"" + ((MethodCallExpression) leftExpression).getText() + "\" is a method call expression, but it should be a variable expression");
public void visitGStringExpression(GStringExpression expression) { visitListOfExpressions(expression.getStrings()); visitListOfExpressions(expression.getValues()); }
public void visitGStringExpression(GStringExpression expression) { mv.visitTypeInsn(NEW, "org/codehaus/groovy/runtime/GStringImpl"); mv.visitInsn(DUP); int size = expression.getValues().size(); helper.pushConstant(size); mv.visitTypeInsn(ANEWARRAY, "java/lang/Object"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); helper.pushConstant(i); visitAndAutoboxBoolean(expression.getValue(i)); mv.visitInsn(AASTORE); } List strings = expression.getStrings(); size = strings.size(); helper.pushConstant(size); mv.visitTypeInsn(ANEWARRAY, "java/lang/String"); for (int i = 0; i < size; i++) { mv.visitInsn(DUP); helper.pushConstant(i); mv.visitLdcInsn(((ConstantExpression) strings.get(i)).getValue()); mv.visitInsn(AASTORE); } mv.visitMethodInsn(INVOKESPECIAL, "org/codehaus/groovy/runtime/GStringImpl", "<init>", "([Ljava/lang/Object;[Ljava/lang/String;)V"); }
public Expression transformExpression(ExpressionTransformer transformer) { Expression ret = new GStringExpression( verbatimText, transformExpressions(strings, transformer, ConstantExpression.class), transformExpressions(values, transformer)); ret.setSourcePosition(this); return ret; }
GStringExpression gStringExpression = new GStringExpression(buffer.toString(), strings, values); configureAST(gStringExpression, gstringNode); return gStringExpression;
public void visitGStringExpression(GStringExpression expression) { super.visitGStringExpression(expression); for (Iterator it = expression.getStrings().iterator(); it.hasNext();) { checkStringExceedingMaximumLength((ConstantExpression) it.next()); } }
throw new ASTRuntimeException(node, "\n\"" + ((GStringExpression) leftExpression).getText() + "\" is a GString expression, but it should be a variable expression");
public void visitGStringExpression(final GStringExpression expression) { assertExpressionAuthorized(expression); visitListOfExpressions(expression.getStrings()); visitListOfExpressions(expression.getValues()); }