16#ifndef CPP_API_EXTENSIONS_SRC_SME_PATTERN_RULES_PATTERN_H
17#define CPP_API_EXTENSIONS_SRC_SME_PATTERN_RULES_PATTERN_H
20#include "sme/aqpp/print/sme_print.hpp"
60 pattern( uint64_t _mask, uint64_t _start, uint64_t _end)
80 virtual void process_rule( uint64_t _old_value, uint64_t & _new_value) {
82 SIM_DEBUG_END(
"true");
85 SIM_DEBUG_END(
"false");
Definition: I_pattern_rule.h:86
std::function< void()> m_lambda
Definition: I_pattern_rule.h:88
virtual _always_inline bool is_bound()
has the lambda callback been bound.
Definition: I_pattern_rule.h:99
_always_inline bool is_active()
reports if rule is active for processing.
Definition: I_pattern_rule.h:73
rule executes if the masked pattern matches the start (old) and end (new) values.
Definition: pattern.h:32
uint64_t m_mask
mask to apply for rule evaluation.
Definition: pattern.h:39
uint64_t m_start
initial value to match with mask.
Definition: pattern.h:45
pattern(uint64_t _mask, uint64_t _start, uint64_t _end)
Construct a new pattern object.
Definition: pattern.h:60
virtual ~pattern()
Destroy the pattern object.
Definition: pattern.h:72
virtual void process_rule(uint64_t _old_value, uint64_t &_new_value)
process rule evaluation between old and new values.
Definition: pattern.h:80
uint64_t m_end
new value to match with mask.
Definition: pattern.h:51
Definition: expression_vector.h:25