@Override public void visitCompilationUnit(CompilationUnitTree tree) { passwordHashSaltTrees.clear(); this.assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); if (containsPasswordHashFunction && !passwordHashSaltTrees.isEmpty()) { passwordHashSaltTrees.forEach(salt -> context().newIssue(this, salt, USE_DEFAULT_SALT_MESSAGE)); } }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { passwordHashSaltTrees.clear(); this.assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); if (containsPasswordHashFunction && !passwordHashSaltTrees.isEmpty()) { passwordHashSaltTrees.forEach(salt -> context().newIssue(this, salt, USE_DEFAULT_SALT_MESSAGE)); } }
public static int complexity(CompilationUnitTree cut) { // Only explicitly visit functions, methods and function expressions. // Rest of the compilation unit is based on CognitiveComplexityVisitor computation class CompilationUnitVisitor extends CognitiveComplexityVisitor { private int functionsComplexity = 0; @Override public void visitMethodDeclaration(MethodDeclarationTree tree) { sumComplexity(tree); } @Override public void visitFunctionDeclaration(FunctionDeclarationTree tree) { sumComplexity(tree); } @Override public void visitFunctionExpression(FunctionExpressionTree tree) { sumComplexity(tree); } private void sumComplexity(FunctionTree tree) { functionsComplexity += complexity(tree).getValue(); } private int complexityWithFunctionsAndRestOfSript() { int scriptComplexity = super.complexity.value; return functionsComplexity + scriptComplexity; } } CompilationUnitVisitor compilationUnitVisitor = new CompilationUnitVisitor(); cut.accept(compilationUnitVisitor); return compilationUnitVisitor.complexityWithFunctionsAndRestOfSript(); }
public static int complexity(CompilationUnitTree cut) { // Only explicitly visit functions, methods and function expressions. // Rest of the compilation unit is based on CognitiveComplexityVisitor computation class CompilationUnitVisitor extends CognitiveComplexityVisitor { private int functionsComplexity = 0; @Override public void visitMethodDeclaration(MethodDeclarationTree tree) { sumComplexity(tree); } @Override public void visitFunctionDeclaration(FunctionDeclarationTree tree) { sumComplexity(tree); } @Override public void visitFunctionExpression(FunctionExpressionTree tree) { sumComplexity(tree); } private void sumComplexity(FunctionTree tree) { functionsComplexity += complexity(tree).getValue(); } private int complexityWithFunctionsAndRestOfSript() { int scriptComplexity = super.complexity.value; return functionsComplexity + scriptComplexity; } } CompilationUnitVisitor compilationUnitVisitor = new CompilationUnitVisitor(); cut.accept(compilationUnitVisitor); return compilationUnitVisitor.complexityWithFunctionsAndRestOfSript(); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { this.assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { this.assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { this.assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); } }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { this.assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { this.assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); } }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { this.assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
@Override public void visitCompilationUnit(CompilationUnitTree tree) { assignmentExpressionVisitor = new AssignmentExpressionVisitor(context().symbolTable()); tree.accept(assignmentExpressionVisitor); super.visitCompilationUnit(tree); }
Optional<ExpressionTree> from(String code) throws Exception { CompilationUnitTree tree = parse(code, PHPLexicalGrammar.COMPILATION_UNIT); SymbolTable symbolTable = SymbolTableImpl.create(tree); AssignmentExpressionVisitor assignmentExpressionVisitor = new AssignmentExpressionVisitor(symbolTable); tree.accept(assignmentExpressionVisitor); IdentifierTree var = ((SymbolTableImpl) symbolTable).getSymbols(name).get(0).declaration(); Symbol symbol = symbolTable.getSymbol(var); return assignmentExpressionVisitor.getUniqueAssignedValue(symbol); } }