metaSMT git
Public Types | Public Member Functions

metaSMT::Graph_Context Class Reference

A graph based representation of metaSMT expressions. More...

#include <metaSMT/Graph_Context.hpp>

List of all members.

Public Types

typedef SMT_Expression result_type

Public Member Functions

 Graph_Context ()
 ~Graph_Context ()
result_type operator() (proto::tag::terminal, result_type const &expr)
result_type operator() (proto::tag::terminal, logic::QF_BV::tag::var_tag const &tag)
result_type operator() (proto::tag::terminal, logic::Array::tag::array_var_tag const &tag)
template<typename Upper , typename Lower , typename Expr >
result_type operator() (logic::QF_BV::tag::extract_tag tag, Upper upper, Lower lower, Expr arg)
template<typename Width , typename Expr >
result_type operator() (logic::QF_BV::tag::zero_extend_tag tag, Width width, Expr arg)
template<typename Width , typename Expr >
result_type operator() (logic::QF_BV::tag::sign_extend_tag tag, Width width, Expr arg)
template<typename TagT >
result_type operator() (proto::tag::terminal, TagT tag)
template<typename TAG , typename Expr1 , typename Expr2 >
result_type operator() (TAG tag, Expr1 e1, Expr2 e2)
template<typename TAG , typename Expr1 , typename Expr2 , typename Expr3 >
result_type operator() (TAG tag, Expr1 e1, Expr2 e2, Expr3 e3)
template<typename Expr1 , typename Expr2 >
result_type operator() (logic::QF_BV::tag::bvuint_tag const &tag, Expr1 value, Expr2 bw)
template<typename Expr1 , typename Expr2 >
result_type operator() (logic::QF_BV::tag::bvsint_tag const &tag, Expr1 value, Expr2 bw)
template<typename Expr1 >
result_type operator() (logic::QF_BV::tag::bvbin_tag tag, Expr1 value)
template<typename Expr1 >
result_type operator() (logic::QF_BV::tag::bvhex_tag tag, Expr1 value)
template<typename TAG , typename Expr1 >
result_type operator() (TAG tag, Expr1 const &e1)
SMT_Graph const & graph ()
template<typename Stream >
void write_dot (Stream &out)
template<typename Stream >
void write_smt (Stream &out, std::vector< SMT_Expression > const &assertions)

Detailed Description

A graph based representation of metaSMT expressions.

This Backend build an expression tree for the evaluated expressions. It supports no commands, only evaluates expressions and returns a node in the internal graph.

The internal graph is an SMT_Graph and can be access with graph()

Definition at line 38 of file Graph_Context.hpp.


Member Typedef Documentation

Definition at line 48 of file Graph_Context.hpp.


Constructor & Destructor Documentation

metaSMT::Graph_Context::Graph_Context ( ) [inline]

Definition at line 41 of file Graph_Context.hpp.

metaSMT::Graph_Context::~Graph_Context ( ) [inline]

Definition at line 45 of file Graph_Context.hpp.


Member Function Documentation

SMT_Graph const& metaSMT::Graph_Context::graph ( ) [inline]
Returns:
The internal Graph.

Definition at line 328 of file Graph_Context.hpp.

result_type metaSMT::Graph_Context::operator() ( proto::tag::terminal  ,
logic::QF_BV::tag::var_tag const &  tag 
) [inline]

Definition at line 54 of file Graph_Context.hpp.

template<typename Upper , typename Lower , typename Expr >
result_type metaSMT::Graph_Context::operator() ( logic::QF_BV::tag::extract_tag  tag,
Upper  upper,
Lower  lower,
Expr  arg 
) [inline]

Definition at line 85 of file Graph_Context.hpp.

template<typename TagT >
result_type metaSMT::Graph_Context::operator() ( proto::tag::terminal  ,
TagT  tag 
) [inline]

Definition at line 138 of file Graph_Context.hpp.

template<typename TAG , typename Expr1 >
result_type metaSMT::Graph_Context::operator() ( TAG  tag,
Expr1 const &  e1 
) [inline]

Definition at line 307 of file Graph_Context.hpp.

template<typename Expr1 >
result_type metaSMT::Graph_Context::operator() ( logic::QF_BV::tag::bvhex_tag  tag,
Expr1  value 
) [inline]

Definition at line 289 of file Graph_Context.hpp.

template<typename Expr1 >
result_type metaSMT::Graph_Context::operator() ( logic::QF_BV::tag::bvbin_tag  tag,
Expr1  value 
) [inline]

Definition at line 262 of file Graph_Context.hpp.

template<typename Expr1 , typename Expr2 >
result_type metaSMT::Graph_Context::operator() ( logic::QF_BV::tag::bvsint_tag const &  tag,
Expr1  value,
Expr2  bw 
) [inline]

Definition at line 233 of file Graph_Context.hpp.

template<typename Expr1 , typename Expr2 >
result_type metaSMT::Graph_Context::operator() ( logic::QF_BV::tag::bvuint_tag const &  tag,
Expr1  value,
Expr2  bw 
) [inline]

Definition at line 204 of file Graph_Context.hpp.

template<typename TAG , typename Expr1 , typename Expr2 >
result_type metaSMT::Graph_Context::operator() ( TAG  tag,
Expr1  e1,
Expr2  e2 
) [inline]

Definition at line 152 of file Graph_Context.hpp.

template<typename TAG , typename Expr1 , typename Expr2 , typename Expr3 >
result_type metaSMT::Graph_Context::operator() ( TAG  tag,
Expr1  e1,
Expr2  e2,
Expr3  e3 
) [inline]

Definition at line 176 of file Graph_Context.hpp.

result_type metaSMT::Graph_Context::operator() ( proto::tag::terminal  ,
logic::Array::tag::array_var_tag const &  tag 
) [inline]

Definition at line 67 of file Graph_Context.hpp.

template<typename Width , typename Expr >
result_type metaSMT::Graph_Context::operator() ( logic::QF_BV::tag::sign_extend_tag  tag,
Width  width,
Expr  arg 
) [inline]

Definition at line 121 of file Graph_Context.hpp.

template<typename Width , typename Expr >
result_type metaSMT::Graph_Context::operator() ( logic::QF_BV::tag::zero_extend_tag  tag,
Width  width,
Expr  arg 
) [inline]

Definition at line 104 of file Graph_Context.hpp.

result_type metaSMT::Graph_Context::operator() ( proto::tag::terminal  ,
result_type const &  expr 
) [inline]

Definition at line 50 of file Graph_Context.hpp.

template<typename Stream >
void metaSMT::Graph_Context::write_dot ( Stream &  out) [inline]

Definition at line 331 of file Graph_Context.hpp.

template<typename Stream >
void metaSMT::Graph_Context::write_smt ( Stream &  out,
std::vector< SMT_Expression > const &  assertions 
) [inline]

Definition at line 336 of file Graph_Context.hpp.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines