7 #ifndef RETDEC_LLVMIR2HLL_SUPPORT_EXPRESSION_NEGATER_H
8 #define RETDEC_LLVMIR2HLL_SUPPORT_EXPRESSION_NEGATER_H
Negation of expressions.
Definition: expression_negater.h:36
ShPtr< Expression > negateInternal(ShPtr< Expression > expr)
Negates the given expression.
Definition: expression_negater.cpp:87
ExpressionStack exprStack
A stack to store expressions during negations.
Definition: expression_negater.h:127
static ShPtr< Expression > negate(ShPtr< Expression > expr)
Negates the given expression.
Definition: expression_negater.cpp:70
virtual void visit(ShPtr< Variable > var) override
Definition: expression_negater.cpp:94
ExpressionNegater()
Constructs a new expression negater.
Definition: expression_negater.cpp:60
std::stack< ShPtr< Expression > > ExpressionStack
Type of a container to store expressions.
Definition: expression_negater.h:42
A base class of all visitors.
Definition: visitor.h:95
A mixin to make classes non-copyable.
Definition: non_copyable.h:27
A base class of all visitors.
A library providing API for working with back-end IR.
std::shared_ptr< T > ShPtr
An alias for a shared pointer.
Definition: smart_ptr.h:18
Definition: archive_wrapper.h:19
A mixin to make classes non-copyable.
Declarations, aliases, macros, etc. for the use of smart pointers.