private static BooleanExpression getBool(Expression base) { BooleanExpression be = new BooleanExpression(base); be.setSourcePosition(base); return be; }
@Override public void visitBooleanExpression(BooleanExpression expr) { BooleanExpression result = new BooleanExpression( replaceExpr(expr.getExpression())); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }
public void visitAssertStatement(AssertStatement statement) { statement.getBooleanExpression().visit(this); statement.getMessageExpression().visit(this); }
@Override public void visitBooleanExpression(BooleanExpression expr) { BooleanExpression conversion = new BooleanExpression( convert(expr.getExpression()) ); conversion.setSourcePosition(expr); result = recordNa(conversion); }
public static BooleanExpression boolX(Expression boolExpr) { return new BooleanExpression(boolExpr); }
public void visitBooleanExpression(BooleanExpression expression) { expression.getExpression().visit(this); }
Expression transformBooleanExpression(final BooleanExpression booleanExpression) { if (booleanExpression instanceof NotExpression) { return transformer.superTransform(booleanExpression); } final Expression expression = booleanExpression.getExpression(); if (!(expression instanceof BinaryExpression)) { StaticTypesTypeChooser typeChooser = transformer.getTypeChooser(); final ClassNode type = typeChooser.resolveType(expression, transformer.getClassNode()); BooleanExpression transformed = new OptimizingBooleanExpression(transformer.transform(expression),type); transformed.setSourcePosition(booleanExpression); transformed.copyNodeMetaData(booleanExpression); return transformed; } return transformer.superTransform(booleanExpression); }
/** * Returns all {@link BooleanExpression} instances found in the given {@link BlockStatement}. */ private static List<BooleanExpression> getBooleanExpressions(BlockStatement closureBlockStatement) { final List<Statement> statementList = closureBlockStatement.getStatements(); List<BooleanExpression> booleanExpressions = new ArrayList<BooleanExpression>(); for (Statement stmt : statementList) { BooleanExpression tmp = null; if (stmt instanceof ExpressionStatement && ((ExpressionStatement) stmt).getExpression() instanceof BooleanExpression) { tmp = (BooleanExpression) ((ExpressionStatement) stmt).getExpression(); tmp.setNodeMetaData("statementLabel", stmt.getStatementLabel()); } else if (stmt instanceof ExpressionStatement) { Expression expression = ((ExpressionStatement) stmt).getExpression(); tmp = new BooleanExpression(expression); tmp.setSourcePosition(expression); tmp.setNodeMetaData("statementLabel", stmt.getStatementLabel()); } booleanExpressions.add(tmp); } return booleanExpressions; }
public void writeWhileLoop(WhileStatement loop) { controller.getAcg().onLineNumber(loop,"visitWhileLoop"); writeStatementLabel(loop); MethodVisitor mv = controller.getMethodVisitor(); controller.getCompileStack().pushLoop(loop.getStatementLabels()); Label continueLabel = controller.getCompileStack().getContinueLabel(); Label breakLabel = controller.getCompileStack().getBreakLabel(); mv.visitLabel(continueLabel); BooleanExpression bool = loop.getBooleanExpression(); boolean boolHandled = false; if (bool.getExpression() instanceof ConstantExpression) { ConstantExpression constant = (ConstantExpression) bool.getExpression(); if (constant.getValue()==Boolean.TRUE) { boolHandled = true; // do nothing } else if (constant.getValue()==Boolean.FALSE) { boolHandled = true; mv.visitJumpInsn(GOTO, breakLabel); } } if(!boolHandled) { bool.visit(controller.getAcg()); controller.getOperandStack().jump(IFEQ, breakLabel); } loop.getLoopBlock().visit(controller.getAcg()); mv.visitJumpInsn(GOTO, continueLabel); mv.visitLabel(breakLabel); controller.getCompileStack().pop(); }
public BooleanExpression(Expression expression) { this.expression = expression; setType(ClassHelper.boolean_TYPE); // for consistency with AsmClassGenerator. see AsmClassGenerator.visitBooleanExpression. }
public String getText() { return "(" + booleanExpression.getText() + ") ? " + trueExpression.getText() + " : " + falseExpression.getText(); }
public static Statement ifElseS(Expression cond, Statement thenStmt, Statement elseStmt) { return new IfStatement( cond instanceof BooleanExpression ? (BooleanExpression) cond : new BooleanExpression(cond), thenStmt, elseStmt ); }
public void visitBooleanExpression(BooleanExpression expression) { expression.getExpression().visit(this); }
public BooleanExpression(Expression expression) { this.expression = expression; setType(ClassHelper.boolean_TYPE); // for consistency with AsmClassGenerator. see AsmClassGenerator.visitBooleanExpression. }
public SourceTextNotAvailableException(AssertStatement stat, SourceUnit unit, String msg) { super(String.format("%s for %s at (%d,%d)-(%d,%d) in %s", msg, stat.getBooleanExpression().getText(), stat.getLineNumber(), stat.getColumnNumber(), stat.getLastLineNumber(), stat.getLastColumnNumber(), unit.getName())); } }
protected Expression ternaryExpression(AST ternaryNode) { AST node = ternaryNode.getFirstChild(); Expression base = expression(node); node = node.getNextSibling(); Expression left = expression(node); node = node.getNextSibling(); Expression ret; if (node == null) { ret = new ElvisOperatorExpression(base, left); } else { Expression right = expression(node); BooleanExpression booleanExpression = new BooleanExpression(base); booleanExpression.setSourcePosition(base); ret = new TernaryExpression(booleanExpression, left, right); } configureAST(ret, ternaryNode); return ret; }
public static Statement ifS(Expression cond, Statement trueStmt) { return new IfStatement( cond instanceof BooleanExpression ? (BooleanExpression) cond : new BooleanExpression(cond), trueStmt, EmptyStatement.INSTANCE ); }
@Override public void visitBooleanExpression(BooleanExpression expr) { BooleanExpression result = new BooleanExpression( replaceExpr(expr.getExpression())); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }