Java 类org.eclipse.jdt.internal.compiler.ast.DoStatement 实例源码

项目:Eclipse-Postfix-Code-Completion    文件:Parser.java   
protected void consumeStatementDo() {
    // DoStatement ::= 'do' Statement 'while' '(' Expression ')' ';'

    //the 'while' pushes a value on this.intStack that we need to remove
    this.intPtr--;

    Statement statement = (Statement) this.astStack[this.astPtr];
    this.expressionLengthPtr--;
    this.astStack[this.astPtr] =
        new DoStatement(
            this.expressionStack[this.expressionPtr--],
            statement,
            this.intStack[this.intPtr--],
            this.endStatementPosition);
}
项目:xapi    文件:GwtAstBuilder.java   
@Override
public void endVisit(DoStatement x, BlockScope scope) {
  try {
    SourceInfo info = makeSourceInfo(x);
    JExpression condition = pop(x.condition);
    JStatement action = pop(x.action);
    push(new JDoStatement(info, condition, action));
  } catch (Throwable e) {
    throw translateException(x, e);
  }
}
项目:lombok-ianchiu    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(DoStatement node, BlockScope scope) {
    fixPositions(setGeneratedBy(node, source));
    return super.visit(node, scope);
}
项目:EasyMPermission    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(DoStatement node, BlockScope scope) {
    fixPositions(setGeneratedBy(node, source));
    return super.visit(node, scope);
}
项目:Eclipse-Postfix-Code-Completion    文件:CodeFormatterVisitor.java   
/**
 * @see org.eclipse.jdt.internal.compiler.ASTVisitor#visit(org.eclipse.jdt.internal.compiler.ast.DoStatement, org.eclipse.jdt.internal.compiler.lookup.BlockScope)
 */
public boolean visit(DoStatement doStatement, BlockScope scope) {

    this.scribe.printNextToken(TerminalTokens.TokenNamedo);
    final int line = this.scribe.line;

    final Statement action = doStatement.action;
    if (action != null) {
        if (action instanceof Block) {
            formatLeftCurlyBrace(line, this.preferences.brace_position_for_block);
            action.traverse(this, scope);
        } else if (action instanceof EmptyStatement) {
            /*
             * This is an empty statement
             */
            formatNecessaryEmptyStatement();
        } else {
            this.scribe.printNewLine();
            this.scribe.indent();
            action.traverse(this, scope);
            if (action instanceof Expression) {
                this.scribe.printNextToken(TerminalTokens.TokenNameSEMICOLON, this.preferences.insert_space_before_semicolon);
                this.scribe.printComment(CodeFormatter.K_UNKNOWN, Scribe.BASIC_TRAILING_COMMENT);
            }
            this.scribe.printNewLine();
            this.scribe.unIndent();
        }
    } else {
        /*
         * This is an empty statement
         */
        formatNecessaryEmptyStatement();
    }

    if (this.preferences.insert_new_line_before_while_in_do_statement) {
        this.scribe.printNewLine();
    }
    this.scribe.printNextToken(TerminalTokens.TokenNamewhile, this.preferences.insert_space_after_closing_brace_in_block);
    this.scribe.printNextToken(TerminalTokens.TokenNameLPAREN, this.preferences.insert_space_before_opening_paren_in_while);

    if (this.preferences.insert_space_after_opening_paren_in_while) {
        this.scribe.space();
    }

    doStatement.condition.traverse(this, scope);

    this.scribe.printNextToken(TerminalTokens.TokenNameRPAREN, this.preferences.insert_space_before_closing_paren_in_while);
    this.scribe.printNextToken(TerminalTokens.TokenNameSEMICOLON, this.preferences.insert_space_before_semicolon);
    this.scribe.printComment(CodeFormatter.K_UNKNOWN, Scribe.BASIC_TRAILING_COMMENT);
    return false;
}
项目:Eclipse-Postfix-Code-Completion-Juno38    文件:CodeFormatterVisitor.java   
/**
 * @see org.eclipse.jdt.internal.compiler.ASTVisitor#visit(org.eclipse.jdt.internal.compiler.ast.DoStatement, org.eclipse.jdt.internal.compiler.lookup.BlockScope)
 */
public boolean visit(DoStatement doStatement, BlockScope scope) {

    this.scribe.printNextToken(TerminalTokens.TokenNamedo);
    final int line = this.scribe.line;

    final Statement action = doStatement.action;
    if (action != null) {
        if (action instanceof Block) {
            formatLeftCurlyBrace(line, this.preferences.brace_position_for_block);
            action.traverse(this, scope);
        } else if (action instanceof EmptyStatement) {
            /*
             * This is an empty statement
             */
            formatNecessaryEmptyStatement();
        } else {
            this.scribe.printNewLine();
            this.scribe.indent();
            action.traverse(this, scope);
            if (action instanceof Expression) {
                this.scribe.printNextToken(TerminalTokens.TokenNameSEMICOLON, this.preferences.insert_space_before_semicolon);
                this.scribe.printComment(CodeFormatter.K_UNKNOWN, Scribe.BASIC_TRAILING_COMMENT);
            }
            this.scribe.printNewLine();
            this.scribe.unIndent();
        }
    } else {
        /*
         * This is an empty statement
         */
        formatNecessaryEmptyStatement();
    }

    if (this.preferences.insert_new_line_before_while_in_do_statement) {
        this.scribe.printNewLine();
    }
    this.scribe.printNextToken(TerminalTokens.TokenNamewhile, this.preferences.insert_space_after_closing_brace_in_block);
    this.scribe.printNextToken(TerminalTokens.TokenNameLPAREN, this.preferences.insert_space_before_opening_paren_in_while);

    if (this.preferences.insert_space_after_opening_paren_in_while) {
        this.scribe.space();
    }

    doStatement.condition.traverse(this, scope);

    this.scribe.printNextToken(TerminalTokens.TokenNameRPAREN, this.preferences.insert_space_before_closing_paren_in_while);
    this.scribe.printNextToken(TerminalTokens.TokenNameSEMICOLON, this.preferences.insert_space_before_semicolon);
    this.scribe.printComment(CodeFormatter.K_UNKNOWN, Scribe.BASIC_TRAILING_COMMENT);
    return false;
}
项目:lombok    文件:SetGeneratedByVisitor.java   
@Override public boolean visit(DoStatement node, BlockScope scope) {
    setGeneratedBy(node, source);
    applyOffsetASTNode(node);
    return super.visit(node, scope);
}