/** * Checks if the node represents a empty statement block. * * @param astNode to be analyzed. * @return the analysis result. */ private boolean isEmptyBlock(AstNode astNode) { return astNode.getNumberOfChildren() == EMPTY_BLOCK; } }
/** * @deprecated in 1.19.2, use {@link #getFirstChild(AstNodeType...)} instead */ @Deprecated public AstNode getChild(int index) { if (index >= getNumberOfChildren()) { throw new IllegalStateException("The AstNode '" + this + "' has only " + getNumberOfChildren() + " children. Requested child index is wrong : " + index); } return children.get(index); }
private String countArgs(AstNode args) { int num = args.getNumberOfChildren() > 3 ? args.getChildren(ErlangGrammarImpl.comma).size() + 1 : args.getNumberOfChildren() - 2; return String.valueOf(num); } }, ErlangGrammarImpl.functionDeclaration, ErlangGrammarImpl.functionClause, ErlangGrammarImpl.funExpression));
private boolean isMultilineComment(AstNode node) { String str = node.getTokenValue(); AstNode expressionStatement = node.getFirstAncestor(PythonGrammar.EXPRESSION_STMT); return (str.endsWith("'''") || str.endsWith("\"\"\"")) && expressionStatement != null && expressionStatement.getNumberOfChildren() == 1; }
private static boolean isMultilineComment(AstNode node) { String str = node.getTokenValue(); AstNode expressionStatement = node.getFirstAncestor(PythonGrammar.EXPRESSION_STMT); return (str.endsWith("'''") || str.endsWith("\"\"\"")) && expressionStatement != null && expressionStatement.getNumberOfChildren() == 1; }
private void checkParenthesisOnExprList(@Nullable AstNode testList, String keyword, AstNode errorNode) { if (testList != null && testList.getNumberOfChildren() == 1) { checkParenthesisOnOnlyChild(testList.getFirstChild(), keyword, errorNode); } }
private void checkParenthesisOnOnlyChild(@Nullable AstNode parent, String keyword, AstNode errorNode) { if (parent != null && parent.getNumberOfChildren() == 1) { checkParenthesis(parent.getFirstChild(), keyword, errorNode); } }
private static AstNode getInnerStmtOfIfStmt(AstNode statement) { if (statement != null && statement.is(PHPGrammar.INNER_STATEMENT_LIST)) { return statement.getNumberOfChildren() > 1 ? null : statement.getFirstChild(); } return statement; }
@Override public AstSelect children() { if (node.getNumberOfChildren() == 1) { return new SingleAstSelect(node.getFirstChild()); } else if (node.getNumberOfChildren() > 1) { return new ListAstSelect(node.getChildren()); } else { return AstSelectFactory.empty(); } }
private boolean isTextParsedAsCode(String text) { try { AstNode astNode = parser.parse(text); List<AstNode> expressions = astNode.getDescendants(PythonGrammar.EXPRESSION_STMT); return astNode.getNumberOfChildren() > 1 && !isSimpleExpression(expressions); } catch (Exception e) { return false; } }
private static boolean isBlock(AstNode directive) { return directive.getNumberOfChildren() == 1 && directive.getFirstChild().is(FlexGrammar.STATEMENT) && directive.getFirstChild().getNumberOfChildren() == 1 && directive.getFirstChild().getFirstChild().is(FlexGrammar.BLOCK); }
private boolean isDelegateExpression(AstNode node) { return node.getNumberOfChildren() == 1 && node.hasDirectChildren(CSharpGrammar.PRIMARY_EXPRESSION) && node.getFirstChild(CSharpGrammar.PRIMARY_EXPRESSION).hasDirectChildren(CSharpGrammar.ANONYMOUS_METHOD_EXPRESSION); }
public static boolean isConstructor(AstNode functionDef, String className) { Preconditions.checkArgument(functionDef.is(FlexGrammar.FUNCTION_DEF)); return functionDef.getFirstChild(FlexGrammar.FUNCTION_NAME).getNumberOfChildren() == 1 && functionDef.getFirstChild(FlexGrammar.FUNCTION_NAME).getFirstChild().getTokenValue().equals(className); }
private void addSimpleField(AstNode test) { Token token = test.getToken(); if (test.getNumberOfChildren() == 1 && test.getFirstChild().is(PythonGrammar.ATOM) && token.getType().equals(GenericTokenType.IDENTIFIER) && !CheckUtils.containsValue(symbols, token.getValue())) { symbols.add(token); } }
@Override public void visitNode(AstNode astNode) { String varName = StringUtils.repeat(PHPPunctuator.DOLAR.getValue(), astNode.getNumberOfChildren()) + astNode.getNextAstNode().getTokenOriginalValue(); getContext().createLineViolation(this, "Remove the use of this variable variable \"{0}\".", astNode, varName); } }
@Override public void visitNode(AstNode astNode) { AstNode caseList = astNode.getFirstChild(PHPGrammar.SWITCH_CASE_LIST).getFirstChild(PHPGrammar.CASE_LIST); if (caseList == null || caseList.getNumberOfChildren() < 3) { getContext().createLineViolation(this, "Replace this \"switch\" statement with \"if\" statements to increase readability.", astNode); } } }
@Override public void visitNode(AstNode astNode) { if (astNode.getNumberOfChildren() > 1 && isOnEnterFrame(astNode.getFirstChild()) && isFunctionExpr(astNode.getLastChild())) { addIssue("Refactor this code to remove the use of \"onEnterFrame\" event handler.", astNode); } }
private void visitForExpression(AstNode node) { if (node.getFirstChild(PythonGrammar.EXPRLIST).getNumberOfChildren() == 1) { checkParenthesisOnExprList(node.getFirstChild(PythonGrammar.EXPRLIST), "for", node); } checkParenthesisOnExprList(node.getFirstChild(PythonGrammar.TESTLIST), "in", node); }
private void visitForExpression(AstNode node) { if (node.getFirstChild(PythonGrammar.EXPRLIST).getNumberOfChildren() == 1) { checkParenthesisOnExprList(node.getFirstChild(PythonGrammar.EXPRLIST), "for", node); } checkParenthesisOnExprList(node.getFirstChild(PythonGrammar.TESTLIST), "in", node); }
private void checkListVariables(AstNode listAssignmentExpr, AstNode nextStmt) { AstNode assignmentList = listAssignmentExpr.getFirstChild(PHPGrammar.LIST_EXPR).getFirstChild(PHPGrammar.ASSIGNMENT_LIST); for (AstNode element : assignmentList.getChildren(PHPGrammar.ASSIGNMENT_LIST_ELEMENT)) { AstNode variable = element.getFirstChild(PHPGrammar.MEMBER_EXPRESSION); if (variable != null && variable.getNumberOfChildren() == 1 && isSimplyReturnedOrThrown(variable, nextStmt)) { reportIssue(variable, nextStmt); } } }