Zigbee Protocol Controller 1.6.0
attribute_mapper_ast.hpp File Reference
#include <vector>
#include <list>
#include <boost/spirit/home/x3.hpp>
#include <boost/spirit/home/x3/support/ast/variant.hpp>
#include <boost/fusion/include/adapt_struct.hpp>
#include <boost/spirit/include/qi_optional.hpp>

Go to the source code of this file.

Classes

struct  ast::nil
 
struct  ast::ast_tree
 
struct  ast::signed_
 Uniary signed operand. More...
 
struct  ast::operation
 Operation An operation consists of an operator and an right hand side operand. When operations are evaluated they are always evaluated in the context of left hand side value. More...
 
struct  ast::expression
 Expression. More...
 
struct  ast::condition
 Condition. More...
 
struct  ast::attribute_path_subscript
 Attribute path subscript. More...
 
struct  ast::attribute
 Attribute. More...
 
struct  ast::assignment
 Assignment. More...
 
struct  ast::function_invokation
 Built-in function invokation Example : fn_min_value(r'3, 5, d'5 or 20) More...
 
struct  ast::scope_setting
 Scope setting A scope setting consists of a setting name and an associated value. More...
 
struct  ast::scope
 Scope. More...
 

Namespaces

namespace  ast
 

Typedefs

using result_type_t = float
 
using ast::ast_node = boost::variant< ast::scope >
 
using ast::operand = 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 > >
 Operands. More...
 
using ast::attribute_path_element = boost::variant< ast::nil, ast::operand, uint32_t, attribute_path_subscript >
 Attribute path element. More...
 
using ast::scope_settings_t = std::vector< scope_setting >
 Type for Scope settings list. More...
 

Enumerations

enum  ast::operator_ids {
  ast::operator_plus , ast::operator_minus , ast::operator_equals , ast::operator_mult ,
  ast::operator_div , ast::operator_bitand , ast::operator_bitor , ast::operator_bitxor ,
  ast::operator_less_than , ast::operator_greater_than , ast::operator_or , ast::operator_modulo ,
  ast::operator_exponent , ast::operator_neq , ast::operator_less_than_or_eq , ast::operator_greater_than_or_eq
}
 Definitions of operators When the parser encounters the string representation of operators, they are parsed into one of the following enums. More...
 
enum  ast::AssignmentType { ast::REGULAR , ast::INSTANCE , ast::CLEARANCE }
 

Functions

bool ast::operator== (const nil &a, const nil &b)
 
bool ast::operator== (const operand &a, const operand &b)
 
bool ast::operator== (const signed_ &a, const signed_ &b)
 
bool ast::operator== (const operation &a, const operation &b)
 
bool ast::operator== (const expression &a, const expression &b)
 
bool ast::operator== (const condition &a, const condition &b)
 
bool ast::operator== (const attribute &a, const attribute &b)
 
bool ast::operator== (const attribute_path_subscript &a, const attribute_path_subscript &b)
 
bool ast::operator== (const assignment &a, const assignment &b)
 
bool ast::operator== (const scope_setting &a, const scope_setting &b)
 
bool ast::operator== (const function_invokation &a, const function_invokation &b)