Class Analysis


  • public class Analysis
    extends java.lang.Object
    Entry point of the module civl.analysis.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      static java.lang.String ABS
      Name of the absolute value function.
    • Constructor Summary

      Constructors 
      Constructor Description
      Analysis()  
    • Method Summary

      All Methods Static Methods Concrete Methods 
      Modifier and Type Method Description
      static void analyzeCall​(java.util.List<CodeAnalyzer> analyzers, State state, int pid, CallOrSpawnStatement statement, edu.udel.cis.vsl.sarl.IF.expr.SymbolicExpression[] arguments)
      Analyzes a call statement at a certain state.
      static java.util.List<CodeAnalyzer> getAnalyzers​(CIVLConfiguration config, edu.udel.cis.vsl.sarl.IF.SymbolicUniverse universe)
      gets all code analyzers as required in the configuration.
      static void printResults​(java.util.List<CodeAnalyzer> analyzers, java.io.PrintStream out)
      prints the analysis result of each code analyzer.
      static void staticAnalysis​(Statement statement, java.util.List<CodeAnalyzer> analyzers)
      performs static analysis on the given statement to decide if any code analysis provided by the specified code analyzers is needed.
      • Methods inherited from class java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • ABS

        public static final java.lang.String ABS
        Name of the absolute value function.
        See Also:
        Constant Field Values
    • Constructor Detail

      • Analysis

        public Analysis()
    • Method Detail

      • staticAnalysis

        public static void staticAnalysis​(Statement statement,
                                          java.util.List<CodeAnalyzer> analyzers)
        performs static analysis on the given statement to decide if any code analysis provided by the specified code analyzers is needed.
        Parameters:
        statement - the statement to be analyzed
        analyzers - the list of analyzers that CIVL wants to use for statements
      • getAnalyzers

        public static java.util.List<CodeAnalyzer> getAnalyzers​(CIVLConfiguration config,
                                                                edu.udel.cis.vsl.sarl.IF.SymbolicUniverse universe)
        gets all code analyzers as required in the configuration.
        Parameters:
        config - the configuration which contains the information of what analyzers are requested
        universe - the symbolic universe to be used by the analyzers
        Returns:
        all code analyzers as required in the configuration
      • analyzeCall

        public static void analyzeCall​(java.util.List<CodeAnalyzer> analyzers,
                                       State state,
                                       int pid,
                                       CallOrSpawnStatement statement,
                                       edu.udel.cis.vsl.sarl.IF.expr.SymbolicExpression[] arguments)
        Analyzes a call statement at a certain state.
        Parameters:
        analyzers - the list of analyzers to be applied to the statement
        state - the state where the analysis happens
        pid - the PID of the process that executes the statement
        statement - the call statement to be analyzed
        arguments - the evaluation of the arguments of the call statement
      • printResults

        public static void printResults​(java.util.List<CodeAnalyzer> analyzers,
                                        java.io.PrintStream out)
        prints the analysis result of each code analyzer.
        Parameters:
        analyzers - the list of code analyzers, the result of which is to be printed
        out - the output stream