1#ifndef ROSE_BinaryAnalysis_Concolic_InputVariables_H 
    2#define ROSE_BinaryAnalysis_Concolic_InputVariables_H 
    3#include <featureTests.h> 
    4#ifdef ROSE_ENABLE_CONCOLIC_TESTING 
    5#include <Rose/BinaryAnalysis/Concolic/BasicTypes.h> 
    7#include <Rose/BinaryAnalysis/SymbolicExpression.h> 
    8#include <Rose/Constants.h> 
   11namespace BinaryAnalysis {
 
   28    using Ptr = InputVariablesPtr;
 
   33    SymbolicExpression::ExprExprHashMap bindings_;      
 
   43    static Ptr instance();
 
   56    const SymbolicExpression::ExprExprHashMap& bindings() 
const;
 
   64    ExecutionEventPtr event(
const std::string &variableName) 
const;
 
   65    ExecutionEventPtr event(
const SymbolicExpressionPtr &
variable) 
const;
 
   84    void activate(
const ExecutionEventPtr&, InputType, 
size_t idx1 = INVALID_INDEX, 
size_t idx2 = INVALID_INDEX);
 
   95    void deactivate(
const ExecutionEventPtr&);
 
  102    void playback(
const ExecutionEventPtr&);
 
  108    void unplayback(
const ExecutionEventPtr&);
 
  111    void addBindingsToSolver(
const SmtSolverPtr&) 
const;
 
  114    void print(std::ostream&, 
const std::string &prefix = 
"") 
const;
 
  129    void define(
const ExecutionEventPtr&, InputType, 
size_t idx1 = INVALID_INDEX, 
size_t idx2 = INVALID_INDEX);
 
  141    void undefine(
const ExecutionEventPtr&);
 
  149    void bind(
const ExecutionEventPtr&);
 
  160    void unbind(
const ExecutionEventPtr&);
 
  170    void bindVariableValue(
const SymbolicExpressionPtr &
variable, 
const SymbolicExpressionPtr &value);
 
  176    void unbindVariableValue(
const SymbolicExpressionPtr &
variable);
 
Container associating values with keys.
 
Base class for reference counted objects.
 
Sawyer::SharedPointer< Node > Ptr
Reference counting pointer.
 
void print(const GlobalVariables &, const Partitioner2::PartitionerConstPtr &, std::ostream &out, const std::string &prefix="")
Print info about multiple global variables.