ilang  1.1.4
ILAng: A Modeling and Verification Platform for SoCs
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Macros
Public Types | Public Member Functions | List of all members
ilang::ExprOpAppFunc Class Reference

The class wrapper for apply uninterpreted function. More...

#include <expr_op.h>

Inheritance diagram for ilang::ExprOpAppFunc:
ilang::ExprOp ilang::Expr ilang::Ast ilang::Object

Public Types

typedef std::shared_ptr< FuncFuncPtr
 Type for forware declaring Func.
 
- Public Types inherited from ilang::Expr
typedef std::shared_ptr< ExprExprPtr
 Pointer type for normal use of Expr.
 
typedef std::vector< ExprPtrExprPtrVec
 Type for storing a set of Expr.
 
- Public Types inherited from ilang::Object
typedef std::shared_ptr< ObjectObjPtr
 Pointer type for normal use of Object.
 

Public Member Functions

 ExprOpAppFunc (const FuncPtr &f, const ExprPtrVec &args)
 Constructor for apply uninterpreted function.
 
AstUidExprOp uid () const
 Return the unified ID of the corresponding operation.
 
z3::expr GetZ3Expr (z3::context &ctx, const Z3ExprVec &expr_vec, const std::string &suffix) const
 Return the z3 expression for the node.
 
FuncPtr func () const
 
- Public Member Functions inherited from ilang::ExprOp
 ExprOp (const ExprPtr &arg)
 Constructor for unary operators.
 
 ExprOp (const ExprPtr &arg0, const ExprPtr &arg1)
 Constructor for binary operators.
 
 ExprOp (const ExprPtr &arg0, const ExprPtr &arg1, const ExprPtr &arg2)
 Constructor for ternary operators.
 
 ExprOp (const ExprPtr &arg0, const int &param1)
 Constructor for binary operators with parameters.
 
 ExprOp (const ExprPtr &arg0, const int &param1, const int &param2)
 Constructor for ternary operators with parameters.
 
 ExprOp (const ExprPtrVec &args)
 Constructor for multiple argument operators (AppFunc).
 
virtual ~ExprOp ()
 Default destructor.
 
std::string op_name () const
 Return the name of the operation.
 
bool is_op () const
 Return trus since this is an operation.
 
std::ostream & Print (std::ostream &out) const
 Output to stream.
 
- Public Member Functions inherited from ilang::Expr
 Expr ()
 Default constructor.
 
 Expr (const std::string &name)
 Constructor with name.
 
virtual ~Expr ()
 Default destructor.
 
const SortPtr sort () const
 Return the pointer of the sort.
 
size_t arg_num () const
 Retrun the number of argument (arity).
 
ExprPtr arg (const size_t &i) const
 Return the i-th argument.
 
size_t param_num () const
 Return the number of parameters.
 
int param (const size_t &i) const
 Return the i-th paramter.
 
void set_sort (const SortPtr sort)
 Set the sort of the expression.
 
void set_args (const ExprPtrVec &args)
 Set the arguments.
 
void set_params (const std::vector< int > params)
 Set the parameters.
 
void replace_arg (const int &idx, const ExprPtr &arg)
 Replace the i-th argument.
 
void replace_arg (const ExprPtr &a, const ExprPtr &b)
 Replace the "a" argument with "b" argument with "exist".
 
bool is_expr () const
 Is type expr (object).
 
virtual bool is_const () const
 Return true if this is a constant.
 
virtual bool is_var () const
 Return true if this is a variable.
 
bool is_bool () const
 Return true if this is a Boolean expression.
 
bool is_bv (const int &width=0) const
 Return true if this is a Bitvector expression.
 
bool is_mem () const
 Return true if this is an Array expression.
 
template<class F >
void DepthFirstVisit (F &func)
 Templated visitor: visit each node in a depth-first order and apply the function object F on it.
 
template<class F >
void DepthFirstVisitPrePost (F &func)
 Templated visitor: visit each node in a depth-first order and apply the function object F pre/pose on it.
 
- Public Member Functions inherited from ilang::Ast
 Ast ()
 Default constructor.
 
 Ast (const std::string &name)
 Constructor with name.
 
virtual ~Ast ()
 Default destructor.
 
bool is_ast () const
 Is type Ast.
 
virtual bool is_func () const
 Is type Ast::Func.
 
InstrLvlAbsPtr host () const
 Return the hosting ILA.
 
void set_host (const InstrLvlAbsPtr &host)
 Set the hosting ILA.
 
- Public Member Functions inherited from ilang::Object
 Object ()
 Default constructor.
 
 Object (const std::string &name)
 Constructor with string name.
 
virtual ~Object ()
 Default destructor.
 
const Symbolname () const
 Get the symbol (name).
 
virtual bool is_instr_lvl_abs () const
 Is type InstrLvlAbs.
 
virtual bool is_instr () const
 Is type Instr.
 

Additional Inherited Members

- Protected Types inherited from ilang::Expr
typedef std::vector< z3::expr > Z3ExprVec
 Vector type for z3 expression.
 
- Protected Types inherited from ilang::Ast
typedef std::shared_ptr
< InstrLvlAbs
InstrLvlAbsPtr
 Type for forward declaration of ILA.
 
- Protected Member Functions inherited from ilang::ExprOp
SortPtr GetSortBinaryOperation (const ExprPtr &e0, const ExprPtr &e1)
 Derived the sort for binary operations.
 
SortPtr GetSortBinaryComparison (const ExprPtr &e0, const ExprPtr &e1)
 Derived the sort for binary comparisons.
 

Detailed Description

The class wrapper for apply uninterpreted function.


The documentation for this class was generated from the following file: