Class ConstantValueSolver


  • public class ConstantValueSolver
    extends AbstractExpressionSolver<ConstantValue>
    "Solves" constant expressions Essentially, this either evaluates successfully when asked for a constant value, or checks that the goal is equal to the constant. Otherwise, there is no solution.
    • Constructor Detail

      • ConstantValueSolver

        public ConstantValueSolver()
    • Method Detail

      • solve

        public AssemblyResolution solve​(ConstantValue cv,
                                        MaskedLong goal,
                                        java.util.Map<java.lang.String,​java.lang.Long> vals,
                                        java.util.Map<java.lang.Integer,​java.lang.Object> res,
                                        AssemblyResolvedConstructor cur,
                                        java.util.Set<SolverHint> hints,
                                        java.lang.String description)
        Description copied from class: AbstractExpressionSolver
        Attempt to solve an expression for a given value
        Specified by:
        solve in class AbstractExpressionSolver<ConstantValue>
        Parameters:
        cv - the expression to solve
        goal - the desired value of the expression
        vals - values of defined symbols
        res - the results of subconstructor resolutions (used for lengths)
        hints - describes techniques applied by calling solvers
        description - the description to give to resolved solutions
        Returns:
        the resolution
      • getInstructionLength

        public int getInstructionLength​(ConstantValue cv,
                                        java.util.Map<java.lang.Integer,​java.lang.Object> res)
        Description copied from class: AbstractExpressionSolver
        Determines the length of the subconstructor that would be returned had the expression not depended on an undefined symbol. This is used by the backfilling process to ensure values are written to the correct offset
        Specified by:
        getInstructionLength in class AbstractExpressionSolver<ConstantValue>
        Parameters:
        cv - the expression
        res - the results of subconstructor resolutions (used for lengths)
        Returns:
        the length of filled in token field(s).