private static BooleanExpression getBool(Expression base) { BooleanExpression be = new BooleanExpression(base); be.setSourcePosition(base); return be; }
@Override public void visitBooleanExpression(BooleanExpression expr) { BooleanExpression conversion = new BooleanExpression( convert(expr.getExpression()) ); conversion.setSourcePosition(expr); result = recordNa(conversion); }
@Override public void visitBooleanExpression(BooleanExpression expr) { BooleanExpression result = new BooleanExpression( replaceExpr(expr.getExpression())); result.setType(expr.getType()); result.setSourcePosition(expr); replaceVisitedExpressionWith(result); }
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); }
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; }
private static BooleanExpression getBool(Expression base) { BooleanExpression be = new BooleanExpression(base); be.setSourcePosition(base); return be; }
private static BooleanExpression getBool(Expression base) { BooleanExpression be = new BooleanExpression(base); be.setSourcePosition(base); return be; }
private static BooleanExpression getBool(Expression base) { BooleanExpression be = new BooleanExpression(base); be.setSourcePosition(base); return be; }
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); }
/** * 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 and(T other) { Validate.notNull(other); BooleanExpression newBooleanExpression = new BooleanExpression( new BinaryExpression( booleanExpression(), Token.newSymbol(Types.LOGICAL_AND, -1, -1), other.booleanExpression() ) ); newBooleanExpression.setSourcePosition(booleanExpression()); renew(newBooleanExpression); }
public void or(T other) { Validate.notNull(other); BooleanExpression newBooleanExpression = new BooleanExpression( new BinaryExpression( booleanExpression(), Token.newSymbol(Types.LOGICAL_OR, -1, -1), other.booleanExpression() ) ); newBooleanExpression.setSourcePosition(booleanExpression()); renew(newBooleanExpression); } }
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; }
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; }
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; }
private void handleClassNode(final ClassNode classNode) { final List<AnnotationNode> annotationNodes = AnnotationUtils.hasMetaAnnotations(classNode, ContractElement.class.getName()); for (AnnotationNode annotationNode : annotationNodes) { final AnnotationProcessor annotationProcessor = createAnnotationProcessor(annotationNode); if (annotationProcessor != null && annotationNode.getMember(CLOSURE_ATTRIBUTE_NAME) instanceof ClassExpression) { final ClassExpression closureClassExpression = (ClassExpression) annotationNode.getMember(CLOSURE_ATTRIBUTE_NAME); MethodCallExpression doCall = new MethodCallExpression( new ConstructorCallExpression(closureClassExpression.getType(), new ArgumentListExpression(VariableExpression.THIS_EXPRESSION, VariableExpression.THIS_EXPRESSION)), "doCall", ArgumentListExpression.EMPTY_ARGUMENTS ); doCall.setMethodTarget(closureClassExpression.getType().getMethods("doCall").get(0)); final BooleanExpression booleanExpression = new BooleanExpression(doCall); booleanExpression.setSourcePosition(annotationNode); annotationProcessor.process(pci, pci.contract(), classNode, (BlockStatement) closureClassExpression.getNodeMetaData(AnnotationClosureVisitor.META_DATA_ORIGINAL_TRY_CATCH_BLOCK), booleanExpression); } } }
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; }
private BooleanExpression addCallsToSuperAnnotationClosure(final ClassNode type, final Class<? extends Annotation> annotationType, BooleanExpression booleanExpression) { final List<AnnotationNode> nextContractElementAnnotations = AnnotationUtils.getAnnotationNodeInHierarchyWithMetaAnnotation(type.getSuperClass(), ClassHelper.makeWithoutCaching(annotationType)); if (nextContractElementAnnotations.isEmpty()) return booleanExpression; for (AnnotationNode nextContractElementAnnotation : nextContractElementAnnotations) { ClassExpression classExpression = (ClassExpression) nextContractElementAnnotation.getMember(BaseVisitor.CLOSURE_ATTRIBUTE_NAME); if (classExpression == null) continue; MethodCallExpression doCall = new MethodCallExpression( new ConstructorCallExpression(classExpression.getType(), new ArgumentListExpression(VariableExpression.THIS_EXPRESSION, VariableExpression.THIS_EXPRESSION)), "doCall", ArgumentListExpression.EMPTY_ARGUMENTS ); doCall.setMethodTarget(classExpression.getType().getMethods("doCall").get(0)); final BooleanExpression rightExpression = new BooleanExpression(doCall); booleanExpression.setSourcePosition(nextContractElementAnnotation); booleanExpression = new BooleanExpression( new BinaryExpression( booleanExpression, Token.newSymbol(Types.LOGICAL_AND, -1, -1), rightExpression) ); } return booleanExpression; }
booleanExpression.setSourcePosition(annotationNode);