51 return boost::apply_visitor(*
this, x.
operand_) + 1;
57 n += boost::apply_visitor(*
this, x.
cond_value);
58 n += boost::apply_visitor(*
this, x.
cond_true);
59 n += boost::apply_visitor(*
this, x.
cond_false);
65 return boost::apply_visitor(*
this, x.
operand_) + 1;
70 int n = boost::apply_visitor(*
this, x.
first);
71 for (
const auto &terms: x.
rest) {
89 n += (*this)(argument);
106 for (
const auto &ast_element:
ast) {
107 n += boost::apply_visitor(*
this, ast_element);
142 inline int operator()(
const std::vector<attribute_path_element> &paths)
145 for (
auto it = paths.begin(); it != paths.end(); it++) {
146 n += boost::apply_visitor(*
this, *it);
attribute store C++ wrapper.
uint32_t attribute_store_type_t
Definition: attribute_store.h:50
Definition: attribute_mapper_ast_complexity.hpp:31
int operator()(const expression &x)
Definition: attribute_mapper_ast_complexity.hpp:68
int operator()(const function_invokation &f)
Definition: attribute_mapper_ast_complexity.hpp:85
int operator()(const ast_tree ast)
Definition: attribute_mapper_ast_complexity.hpp:103
int operator()(float n)
Definition: attribute_mapper_ast_complexity.hpp:43
int operator()(const operation &x)
Definition: attribute_mapper_ast_complexity.hpp:63
int operator()(const nil &x)
Definition: attribute_mapper_ast_complexity.hpp:33
int operator()(const scope &x)
Definition: attribute_mapper_ast_complexity.hpp:94
int operator()(unsigned int n)
Definition: attribute_mapper_ast_complexity.hpp:38
int operator()(const assignment &a)
Definition: attribute_mapper_ast_complexity.hpp:77
int operator()(const condition &x)
Definition: attribute_mapper_ast_complexity.hpp:54
int operator()(const signed_ &x)
Definition: attribute_mapper_ast_complexity.hpp:49
Definition: attribute_mapper_ast_complexity.hpp:114
int operator()(const attribute_path_subscript &subscript)
Definition: attribute_mapper_ast_complexity.hpp:134
int operator()(const ast::operand &operand)
Definition: attribute_mapper_ast_complexity.hpp:118
complexity & _complexity
Definition: attribute_mapper_ast_complexity.hpp:152
int operator()(const std::vector< attribute_path_element > &paths)
Definition: attribute_mapper_ast_complexity.hpp:142
int operator()(const nil &nul)
Definition: attribute_mapper_ast_complexity.hpp:123
path_complexity(complexity &complexity)
Definition: attribute_mapper_ast_complexity.hpp:116
int operator()(attribute_store_type_t type)
Definition: attribute_mapper_ast_complexity.hpp:128
Definition: attribute_mapper_ast.hpp:39
x3::variant< ast::nil, uint32_t, float, x3::forward_ast< attribute >, x3::forward_ast< signed_ >, x3::forward_ast< expression >, x3::forward_ast< condition >, x3::forward_ast< function_invokation > > operand
Operands.
Definition: attribute_mapper_ast.hpp:95
Assignment.
Definition: attribute_mapper_ast.hpp:193
ast::attribute lhs
left hand side of the assignment
Definition: attribute_mapper_ast.hpp:199
expression rhs
right hand side of the assignment
Definition: attribute_mapper_ast.hpp:200
Definition: attribute_mapper_ast.hpp:53
Attribute path subscript.
Definition: attribute_mapper_ast.hpp:160
operand identifier
Definition: attribute_mapper_ast.hpp:161
operand index
Definition: attribute_mapper_ast.hpp:162
Attribute.
Definition: attribute_mapper_ast.hpp:177
std::vector< attribute_path_element > attribute_path
Definition: attribute_mapper_ast.hpp:179
Condition.
Definition: attribute_mapper_ast.hpp:147
operand cond_true
Truth value.
Definition: attribute_mapper_ast.hpp:149
operand cond_false
False value.
Definition: attribute_mapper_ast.hpp:150
operand cond_value
Selector value.
Definition: attribute_mapper_ast.hpp:148
Expression.
Definition: attribute_mapper_ast.hpp:134
operand first
Definition: attribute_mapper_ast.hpp:135
std::list< operation > rest
Definition: attribute_mapper_ast.hpp:136
Built-in function invokation Example : fn_min_value(r'3, 5, d'5 or 20)
Definition: attribute_mapper_ast.hpp:209
std::vector< expression > arguments
Definition: attribute_mapper_ast.hpp:211
Definition: attribute_mapper_ast.hpp:42
Operation An operation consists of an operator and an right hand side operand. When operations are ev...
Definition: attribute_mapper_ast.hpp:123
operand operand_
right hand side operand
Definition: attribute_mapper_ast.hpp:125
Scope.
Definition: attribute_mapper_ast.hpp:234
std::vector< assignment > assignments
Definition: attribute_mapper_ast.hpp:237
Uniary signed operand.
Definition: attribute_mapper_ast.hpp:111
operand operand_
Definition: attribute_mapper_ast.hpp:113