@Override public void visitWhileStatement(WhileStatementTree tree) { complexity.addComplexityWithNesting(tree.whileToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
@Override public void visitWhileStatement(WhileStatementTree tree) { super.visitWhileStatement(tree); if (tree.is(Tree.Kind.WHILE_STATEMENT)) { checkBlock(tree.statements().get(0), getLastToken(tree.condition())); } }
@Override public void visitWhileStatement(WhileStatementTree tree) { super.visitWhileStatement(tree); if (tree.is(Tree.Kind.WHILE_STATEMENT)) { checkStatement(tree.statements().get(0), tree.whileToken()); } }
@Override public void visitWhileStatement(WhileStatementTree tree) { checkIndentation(tree.whileToken(), tree.statements()); super.visitWhileStatement(tree); }
@Test public void standard_syntax() throws Exception { WhileStatementTree tree = parse("while ($a) {}", PHPLexicalGrammar.WHILE_STATEMENT); assertThat(tree.is(Kind.WHILE_STATEMENT)).isTrue(); assertThat(tree.whileToken().text()).isEqualTo("while"); assertThat(tree.condition().is(Kind.PARENTHESISED_EXPRESSION)).isTrue(); assertThat(tree.statements()).hasSize(1); assertThat(tree.statements().get(0).is(Kind.BLOCK)).isTrue(); assertThat(tree.colonToken()).isNull(); assertThat(tree.endWhileToken()).isNull(); assertThat(tree.eosToken()).isNull(); }
@Override public void visitWhileStatement(WhileStatementTree tree) { checkControlStructureOpenCurly(tree.condition().closeParenthesis(), getOpenCurlyIfBlock(tree.statements())); super.visitWhileStatement(tree); }
@Override public void visitWhileStatement(WhileStatementTree tree) { incrementComplexity(tree.whileToken()); super.visitWhileStatement(tree); }
@Override public void visitWhileStatement(WhileStatementTree tree) { //ignore while condition scan(tree.statements()); }
private static boolean isWhileTrue(Tree loop) { return loop.is(Tree.Kind.WHILE_STATEMENT, Tree.Kind.ALTERNATIVE_WHILE_STATEMENT) && CheckUtils.isTrueValue(((WhileStatementTree) loop).condition().expression()); }
@Test public void alternative_syntax() throws Exception { WhileStatementTree tree = parse("while ($a) : endwhile ;", PHPLexicalGrammar.WHILE_STATEMENT); assertThat(tree.is(Kind.ALTERNATIVE_WHILE_STATEMENT)).isTrue(); assertThat(tree.whileToken().text()).isEqualTo("while"); assertThat(tree.statements()).hasSize(0); assertThat(tree.colonToken().text()).isEqualTo(":"); assertThat(tree.endWhileToken().text()).isEqualTo("endwhile"); assertThat(tree.eosToken().text()).isEqualTo(";"); }
@Override public void visitWhileStatement(WhileStatementTree tree) { checkControlStructureOpenCurly(tree.condition().closeParenthesis(), getOpenCurlyIfBlock(tree.statements())); super.visitWhileStatement(tree); }
@Override public void visitWhileStatement(WhileStatementTree tree) { super.visitWhileStatement(tree); if (tree.is(Tree.Kind.WHILE_STATEMENT)) { checkStatement(tree.statements().get(0), tree.whileToken()); } }
@Override public void visitWhileStatement(WhileStatementTree tree) { checkIndentation(tree.whileToken(), tree.statements()); super.visitWhileStatement(tree); }
@Override public void visitWhileStatement(WhileStatementTree tree) { incrementComplexity(tree.whileToken()); super.visitWhileStatement(tree); }
@Override public void visitWhileStatement(WhileStatementTree tree) { //ignore while condition scan(tree.statements()); }
private static boolean isWhileTrue(Tree loop) { return loop.is(Tree.Kind.WHILE_STATEMENT, Tree.Kind.ALTERNATIVE_WHILE_STATEMENT) && CheckUtils.isTrueValue(((WhileStatementTree) loop).condition().expression()); }
@Override public void visitWhileStatement(WhileStatementTree tree) { complexity.addComplexityWithNesting(tree.whileToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
@Override public void visitWhileStatement(WhileStatementTree tree) { super.visitWhileStatement(tree); if (tree.is(Tree.Kind.WHILE_STATEMENT)) { checkBlock(tree.statements().get(0), getLastToken(tree.condition())); } }
private PhpCfgBlock buildWhileStatement(WhileStatementTree tree, PhpCfgBlock successor) { ForwardingBlock linkToCondition = createForwardingBlock(); addBreakable(successor, linkToCondition); PhpCfgBlock loopBodyBlock = buildSubFlow(tree.statements(), linkToCondition); removeBreakable(); PhpCfgBranchingBlock conditionBlock = createBranchingBlock(tree, loopBodyBlock, successor); conditionBlock.addElement(tree.condition().expression()); linkToCondition.setSuccessor(conditionBlock); return createSimpleBlock(conditionBlock); }
@Override public void visitWhileStatement(WhileStatementTree tree) { enterBlock(tree.whileToken()); super.visitWhileStatement(tree); leaveBlock(); }