Example usage for org.eclipse.jdt.core.dom DoStatement setExpression

List of usage examples for org.eclipse.jdt.core.dom DoStatement setExpression

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom DoStatement setExpression.

Prototype

public void setExpression(Expression expression) 

Source Link

Document

Sets the expression of this do statement.

Usage

From source file:java5totext.input.JDTVisitor.java

License:Open Source License

@Override
public void endVisit(org.eclipse.jdt.core.dom.DoStatement node) {
    DoStatement element = (DoStatement) this.binding.get(node);
    this.initializeNode(element, node);

    if (this.binding.get(node.getExpression()) != null)
        element.setExpression((Expression) this.binding.get(node.getExpression()));
    if (this.binding.get(node.getBody()) != null)
        element.setBody((Statement) this.binding.get(node.getBody()));
}

From source file:org.asup.dk.compiler.rpj.writer.JDTStatementWriter.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/* ww w. j a  v  a  2  s .  c om*/
public boolean visit(QUntil statement) {

    Block block = blocks.peek();

    DoStatement doSt = ast.newDoStatement();

    QPredicateExpression condition = expressionParser.parsePredicate(statement.getCondition());
    Expression expression = buildExpression(ast, condition,
            CompilationContextHelper.getJavaClass(compilationUnit, condition));
    doSt.setExpression(expression);

    block.statements().add(doSt);

    // body
    Block bodyBlock = ast.newBlock();
    doSt.setBody(bodyBlock);

    blocks.push(bodyBlock);

    return super.visit(statement);
}

From source file:org.decojer.cavaj.transformers.TrControlFlowStmts.java

License:Open Source License

@Nullable
private Statement transformLoop(@Nonnull final Loop loop) {
    final BB head = loop.getHead();
    boolean negate = true;
    switch (loop.getKind()) {
    case WHILE:// w w  w. j av  a2 s. c  o m
        negate = false;
    case WHILENOT: {
        final IfStatement ifStatement = (IfStatement) head.getStmt(0);

        final WhileStatement whileStatement = setOp(getAst().newWhileStatement(), getOp(ifStatement));
        final Expression expression = ifStatement.getExpression();
        assert expression != null;
        whileStatement.setExpression(wrap(negate ? not(expression) : expression));

        final E out = negate ? head.getFalseOut() : head.getTrueOut();
        assert out != null;
        whileStatement.setBody(transformSequence(loop, out));
        return whileStatement;
    }
    case DO_WHILE:
        negate = false;
    case DO_WHILENOT: {
        final BB last = loop.getLast();
        final IfStatement ifStatement = (IfStatement) last.getFinalStmt();
        assert ifStatement != null;
        final DoStatement doStatement = setOp(getAst().newDoStatement(), getOp(ifStatement));

        final Expression expression = ifStatement.getExpression();
        assert expression != null;
        doStatement.setExpression(wrap(negate ? not(expression) : expression));

        final List<Statement> statements = ((org.eclipse.jdt.core.dom.Block) doStatement.getBody())
                .statements();
        assert statements != null;
        transformSequence(loop, head, statements);
        return doStatement;
    }
    case ENDLESS: {
        // this while statement hasn't an operation, line number is before first statement,
        // do { ... } while(true); wouldn't change the entry line part, always use while(true)
        final WhileStatement whileStatement = getAst().newWhileStatement();

        whileStatement.setExpression(getAst().newBooleanLiteral(true));

        whileStatement.setBody(transformSequence(loop, head));
        return whileStatement;
    }
    default:
        log.warn(getM() + ": Unknown loop type '" + loop.getKind() + "'!");
        return null;
    }
}

From source file:org.eclipse.jdt.core.dom.ASTConverter.java

License:Open Source License

public DoStatement convert(org.eclipse.jdt.internal.compiler.ast.DoStatement statement) {
    DoStatement doStatement = new DoStatement(this.ast);
    doStatement.setSourceRange(statement.sourceStart, statement.sourceEnd - statement.sourceStart + 1);
    doStatement.setExpression(convert(statement.condition));
    final Statement action = convert(statement.action);
    if (action == null)
        return null;
    doStatement.setBody(action);//w  w  w  .  j a v a  2 s .  c om
    return doStatement;
}

From source file:org.eclipse.modisco.java.discoverer.internal.io.java.JDTVisitor.java

License:Open Source License

@Override
public void endVisit(final org.eclipse.jdt.core.dom.DoStatement node) {
    DoStatement element = (DoStatement) this.binding.get(node);
    initializeNode(element, node);//from   w  w w  .  j a  v a2 s.  c o m

    if (this.binding.get(node.getExpression()) != null) {
        element.setExpression(JDTVisitorUtils.completeExpression(this.binding.get(node.getExpression()), this));
    }
    if (this.binding.get(node.getBody()) != null) {
        element.setBody((Statement) this.binding.get(node.getBody()));
    }
}

From source file:org.smeup.sys.dk.compiler.rpj.writer.JDTStatementWriter.java

License:Open Source License

@SuppressWarnings("unchecked")
@Override/*from w  ww  .  j  a v a 2 s. co  m*/
public boolean visit(QUntil statement) {

    Block block = blocks.peek();

    DoStatement doSt = ast.newDoStatement();

    QLogicalExpression logicalExpression = QIntegratedLanguageExpressionFactory.eINSTANCE
            .createLogicalExpression();
    logicalExpression.setOperator(LogicalOperator.NOT);
    QBlockExpression blockExpression = QIntegratedLanguageExpressionFactory.eINSTANCE.createBlockExpression();

    QPredicateExpression condition = buildIterationCondition(statement.getCondition());
    blockExpression.setExpression(condition);

    logicalExpression.setLeftOperand(blockExpression);

    Expression expression = JDTStatementHelper.buildExpression(ast, compilationUnit, logicalExpression,
            RPJContextHelper.getTargetClass(compilationUnit, logicalExpression, true));
    doSt.setExpression(expression);

    block.statements().add(doSt);

    // body
    Block bodyBlock = ast.newBlock();
    doSt.setBody(bodyBlock);

    blocks.push(bodyBlock);

    return super.visit(statement);
}

From source file:org.whole.lang.java.util.JDTTransformerVisitor.java

License:Open Source License

public boolean visit(DoStatement node) {
    org.whole.lang.java.model.DoStatement doStm = lf.create(JavaEntityDescriptorEnum.DoStatement);

    acceptChild(node.getExpression());/*  w  w w .  java  2  s .  c om*/
    doStm.setExpression(exp);

    acceptChild(node.getBody());
    doStm.setBody(stm);

    stm = doStm;
    return false;
}