コード例 #1
0
 public static IMethodResult <Variable> HelperForRunTheArithmeticAnalysis
 (
     string methodName, ADomainKind adomain,
     IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> /*!*/ driver,
     Analyzers.Arithmetic.ArithmeticOptions options,
     Predicate <APC> cachePCs
 )
 {
     return(RunTheAnalysis(methodName, driver, new ArithmeticAnalysis(methodName, driver, options, adomain, cachePCs)));
 }
コード例 #2
0
 public ArithmeticAnalysis
 (
     string methodName,
     IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> mdriver,
     Analyzers.Arithmetic.ArithmeticOptions options,
     ADomainKind abstractDomain,
     Predicate <APC> cachePCs
 )
     : base(methodName, abstractDomain, mdriver, options, cachePCs)
 {
     this.myOptions = options;
 }
コード例 #3
0
 /// <summary>
 /// The entry point for running the arithmetic analysis
 /// </summary>
 public static IMethodResult <Variable> RunTheArithmeticAnalysis <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable>
 (
     string methodName,
     IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> driver,
     ADomainKind adomain, Analyzers.Arithmetic.ArithmeticOptions options,
     Predicate <APC> cachePCs
 )
     where Variable : IEquatable <Variable>
     where Expression : IEquatable <Expression>
     where Type : IEquatable <Type>
 {
     return(TypeBindings <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable> .HelperForRunTheArithmeticAnalysis(methodName, adomain, driver, options, cachePCs));
 }
コード例 #4
0
                internal NumericalAnalysis
                (
                    string methodName,
                    ADomainKind abstractDomain,
                    IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> mdriver,
                    Options options,
                    Predicate <APC> cachePCs
                )
                    : base(methodName, mdriver, options, cachePCs)
                {
                    this.optionsList = new List <Options>();

                    WeakUpperBoundsEqual <BoxedVariable <Variable>, BoxedExpression> .DefaultClosureSteps = mdriver.Options.Steps;

                    NumericalDomainWithKarr <BoxedVariable <Variable>, BoxedExpression> .DefaultClosureSteps            = mdriver.Options.Steps;
                    NumericalDomainWithKarr <BoxedVariable <Variable>, BoxedExpression> .MaxPairWiseEqualitiesInClosure = options.ClosurePairs;
                }
コード例 #5
0
        RunTheAnalysis <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, Options>
        (
            string methodName,
            ADomainKind adomain,
            IMethodDriver <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable, ILogOptions> driver,
            Options options,
            Predicate <APC> cachePCs
        )
            where Variable : IEquatable <Variable>
            where Expression : IEquatable <Expression>
            where Type : IEquatable <Type>
            where Options : Analyzers.ValueAnalysisOptions <Options>
        {
            var analysis =
                new TypeBindings <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable> .NumericalAnalysis <Options>(methodName, adomain, driver, options, cachePCs);

            return(TypeBindings <Local, Parameter, Method, Field, Property, Event, Type, Attribute, Assembly, Expression, Variable> .RunTheAnalysis(methodName, driver, analysis));
        }