private static StatementTree getConditionalStatement(Tree tree) { List<StatementTree> statementTrees; if (tree.is(Tree.Kind.IF_STATEMENT)) { statementTrees = ((IfStatementTree) tree).statements(); } else if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { statementTrees = ((ElseifClauseTree) tree).statements(); } else { statementTrees = ((ElseClauseTree) tree).statements(); } return statementTrees.get(0); }
@Override public void visitElseifClause(ElseifClauseTree tree) { checkIndentation(tree.elseifToken(), tree.statements()); super.visitElseifClause(tree); }
private static StatementTree getConditionalStatement(Tree tree) { List<StatementTree> statementTrees; if (tree.is(Tree.Kind.IF_STATEMENT)) { statementTrees = ((IfStatementTree) tree).statements(); } else if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { statementTrees = ((ElseifClauseTree) tree).statements(); } else { statementTrees = ((ElseClauseTree) tree).statements(); } return statementTrees.get(0); }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkStatement(tree.statements().get(0), tree.elseifToken()); } }
private static StatementTree getLastStatementOfIf(StatementTree statement) { if (!statement.is(Kind.IF_STATEMENT)) { return statement; } List<StatementTree> childStatements; IfStatementTree ifStatement = (IfStatementTree) statement; ElseClauseTree elseClause = ifStatement.elseClause(); List<ElseifClauseTree> elseifClause = ifStatement.elseifClauses(); if (elseClause != null) { childStatements = elseClause.statements(); } else if (!elseifClause.isEmpty()) { childStatements = elseifClause.get(elseifClause.size() - 1).statements(); } else { childStatements = ifStatement.statements(); } return getLastStatementOfIf(childStatements.get(childStatements.size() - 1)); }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkStatement(tree.statements().get(0), tree.elseifToken()); } }
@Override public void visitElseifClause(ElseifClauseTree tree) { checkIndentation(tree.elseifToken(), tree.statements()); super.visitElseifClause(tree); }
private static StatementTree getLastStatementOfIf(StatementTree statement) { if (!statement.is(Kind.IF_STATEMENT)) { return statement; } List<StatementTree> childStatements; IfStatementTree ifStatement = (IfStatementTree) statement; ElseClauseTree elseClause = ifStatement.elseClause(); List<ElseifClauseTree> elseifClause = ifStatement.elseifClauses(); if (elseClause != null) { childStatements = elseClause.statements(); } else if (!elseifClause.isEmpty()) { childStatements = elseifClause.get(elseifClause.size() - 1).statements(); } else { childStatements = ifStatement.statements(); } return getLastStatementOfIf(childStatements.get(childStatements.size() - 1)); }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkBlock(tree.statements().get(0), getLastToken(tree.condition())); } }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkBlock(tree.statements().get(0), getLastToken(tree.condition())); } }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkBlock(tree.statements().get(0), getLastToken(tree.condition())); } }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkBlock(tree.statements().get(0), getLastToken(tree.condition())); } }
@Override public void visitElseifClause(ElseifClauseTree tree) { complexity.addComplexityWithoutNesting(tree.elseifToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
@Override public void visitElseifClause(ElseifClauseTree tree) { complexity.addComplexityWithoutNesting(tree.elseifToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
/** * Control structures open curly brace */ @Override public void visitElseifClause(ElseifClauseTree tree) { checkControlStructureOpenCurly(tree.condition().closeParenthesis(), getOpenCurlyIfBlock(tree.statements())); super.visitElseifClause(tree); }
private PhpCfgBlock buildElseIfStatement(ElseifClauseTree tree, PhpCfgBlock ifSuccessor, PhpCfgBlock nextCondition) { PhpCfgBlock thenBlock = buildSubFlow(tree.statements(), ifSuccessor); PhpCfgBranchingBlock conditionBlock = createBranchingBlock(tree, thenBlock, nextCondition); conditionBlock.addElement(tree.condition().expression()); return conditionBlock; }
/** * Control structures open curly brace */ @Override public void visitElseifClause(ElseifClauseTree tree) { checkControlStructureOpenCurly(tree.condition().closeParenthesis(), getOpenCurlyIfBlock(tree.statements())); super.visitElseifClause(tree); }
private PhpCfgBlock buildElseIfStatement(ElseifClauseTree tree, PhpCfgBlock ifSuccessor, PhpCfgBlock nextCondition) { PhpCfgBlock thenBlock = buildSubFlow(tree.statements(), ifSuccessor); PhpCfgBranchingBlock conditionBlock = createBranchingBlock(tree, thenBlock, nextCondition); conditionBlock.addElement(tree.condition().expression()); return conditionBlock; }
@Test public void standard_syntax() throws Exception { ElseifClauseTree tree = parse("elseif ($condition) {}", PHPLexicalGrammar.ELSEIF_CLAUSE); assertThat(tree.is(Kind.ELSEIF_CLAUSE)).isTrue(); assertThat(tree.elseifToken().text()).isEqualTo("elseif"); assertThat(expressionToString(tree.condition())).isEqualTo("($condition)"); assertThat(tree.statements()).hasSize(1); }
@Test public void alternative_syntax() throws Exception { ElseifClauseTree tree = parse("elseif ($condition) : $stmt1; $stmt2; ", PHPLexicalGrammar.ALTERNATIVE_ELSEIF_CLAUSE); assertThat(tree.is(Kind.ALTERNATIVE_ELSEIF_CLAUSE)).isTrue(); assertThat(tree.elseifToken().text()).isEqualTo("elseif"); assertThat(expressionToString(tree.condition())).isEqualTo("($condition)"); assertThat(tree.colonToken().text()).isEqualTo(":"); assertThat(tree.statements()).hasSize(2); }