SMT-RAT  24.02
Toolbox for Strategic and Parallel Satisfiability-Modulo-Theories Solving
smtrat::expression::ExpressionModifier Class Reference

#include <ExpressionVisitor.h>

Inheritance diagram for smtrat::expression::ExpressionModifier:
Collaboration diagram for smtrat::expression::ExpressionModifier:

Public Types

typedef std::function< const ExpressionContent *(const Expression &)> VisitorFunction
 

Public Member Functions

void setPre (const VisitorFunction &f)
 
void setPost (const VisitorFunction &f)
 
Expression visit (const Expression &expression)
 
const ExpressionContentoperator() (carl::Variable::Arg)
 
const ExpressionContentoperator() (const ITEExpression &expr)
 
const ExpressionContentoperator() (const QuantifierExpression &expr)
 
const ExpressionContentoperator() (const UnaryExpression &expr)
 
const ExpressionContentoperator() (const BinaryExpression &expr)
 
const ExpressionContentoperator() (const NaryExpression &expr)
 

Private Member Functions

const ExpressionContentinternalVisit (const ExpressionContent *_content)
 

Private Attributes

std::optional< VisitorFunctionmPre
 
std::optional< VisitorFunctionmPost
 

Detailed Description

Definition at line 59 of file ExpressionVisitor.h.

Member Typedef Documentation

◆ VisitorFunction

Definition at line 61 of file ExpressionVisitor.h.

Member Function Documentation

◆ internalVisit()

const ExpressionContent* smtrat::expression::ExpressionModifier::internalVisit ( const ExpressionContent _content)
inlineprivate

Definition at line 66 of file ExpressionVisitor.h.

Here is the caller graph for this function:

◆ operator()() [1/6]

const ExpressionContent* smtrat::expression::ExpressionModifier::operator() ( carl::Variable::Arg  )
inline

Definition at line 97 of file ExpressionVisitor.h.

◆ operator()() [2/6]

const ExpressionContent* smtrat::expression::ExpressionModifier::operator() ( const BinaryExpression expr)
inline

Definition at line 120 of file ExpressionVisitor.h.

Here is the call graph for this function:

◆ operator()() [3/6]

const ExpressionContent* smtrat::expression::ExpressionModifier::operator() ( const ITEExpression expr)
inline

Definition at line 100 of file ExpressionVisitor.h.

Here is the call graph for this function:

◆ operator()() [4/6]

const ExpressionContent* smtrat::expression::ExpressionModifier::operator() ( const NaryExpression expr)
inline

Definition at line 128 of file ExpressionVisitor.h.

Here is the call graph for this function:

◆ operator()() [5/6]

const ExpressionContent* smtrat::expression::ExpressionModifier::operator() ( const QuantifierExpression expr)
inline

Definition at line 110 of file ExpressionVisitor.h.

Here is the call graph for this function:

◆ operator()() [6/6]

const ExpressionContent* smtrat::expression::ExpressionModifier::operator() ( const UnaryExpression expr)
inline

Definition at line 115 of file ExpressionVisitor.h.

Here is the call graph for this function:

◆ setPost()

void smtrat::expression::ExpressionModifier::setPost ( const VisitorFunction f)
inline

Definition at line 87 of file ExpressionVisitor.h.

◆ setPre()

void smtrat::expression::ExpressionModifier::setPre ( const VisitorFunction f)
inline

Definition at line 84 of file ExpressionVisitor.h.

◆ visit()

Expression smtrat::expression::ExpressionModifier::visit ( const Expression expression)
inline

Definition at line 91 of file ExpressionVisitor.h.

Here is the call graph for this function:

Field Documentation

◆ mPost

std::optional<VisitorFunction> smtrat::expression::ExpressionModifier::mPost
private

Definition at line 64 of file ExpressionVisitor.h.

◆ mPre

std::optional<VisitorFunction> smtrat::expression::ExpressionModifier::mPre
private

Definition at line 63 of file ExpressionVisitor.h.


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