C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
exprtk::parser< T >::scope_element Struct Reference
Collaboration diagram for exprtk::parser< T >::scope_element:
[legend]

Public Types

enum  element_type {
  e_none , e_literal , e_variable , e_vector ,
  e_vecelem , e_string
}
typedef details::vector_holder< T > vector_holder_t
typedef literal_node_t * literal_node_ptr
typedef variable_node_t * variable_node_ptr
typedef vector_holder_t * vector_holder_ptr
typedef expression_node_t * expression_node_ptr
typedef stringvar_node_t * stringvar_node_ptr

Public Member Functions

 scope_element ()
bool operator< (const scope_element &se) const
void clear ()

Public Attributes

std::string name
std::size_t size
std::size_t index
std::size_t depth
std::size_t ref_count
std::size_t ip_index
element_type type
bool active
void * data
expression_node_ptr var_node
vector_holder_ptr vec_node
stringvar_node_ptr str_node

Detailed Description

template<typename T>
struct exprtk::parser< T >::scope_element

Definition at line 22655 of file exprtk.hpp.

Member Typedef Documentation

◆ expression_node_ptr

template<typename T>
typedef expression_node_t* exprtk::parser< T >::scope_element::expression_node_ptr

Definition at line 22671 of file exprtk.hpp.

◆ literal_node_ptr

template<typename T>
typedef literal_node_t* exprtk::parser< T >::scope_element::literal_node_ptr

Definition at line 22668 of file exprtk.hpp.

◆ stringvar_node_ptr

template<typename T>
typedef stringvar_node_t* exprtk::parser< T >::scope_element::stringvar_node_ptr

Definition at line 22673 of file exprtk.hpp.

◆ variable_node_ptr

template<typename T>
typedef variable_node_t* exprtk::parser< T >::scope_element::variable_node_ptr

Definition at line 22669 of file exprtk.hpp.

◆ vector_holder_ptr

template<typename T>
typedef vector_holder_t* exprtk::parser< T >::scope_element::vector_holder_ptr

Definition at line 22670 of file exprtk.hpp.

◆ vector_holder_t

template<typename T>
typedef details::vector_holder<T> exprtk::parser< T >::scope_element::vector_holder_t

Definition at line 22667 of file exprtk.hpp.

Member Enumeration Documentation

◆ element_type

Enumerator
e_none 
e_literal 
e_variable 
e_vector 
e_vecelem 
e_string 

Definition at line 22657 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ scope_element()

template<typename T>
exprtk::parser< T >::scope_element::scope_element ( )
inline

Definition at line 22676 of file exprtk.hpp.

22677 : name("???")
22681 , ref_count(0)
22682 , ip_index (0)
22683 , type (e_none)
22684 , active (false)
22685 , data (0)
22686 , var_node (0)
22687 , vec_node (0)
22688 #ifndef exprtk_disable_string_capabilities
22689 , str_node(0)
22690 #endif
22691 {}
stringvar_node_ptr str_node
Definition exprtk.hpp:22741
vector_holder_ptr vec_node
Definition exprtk.hpp:22739
expression_node_ptr var_node
Definition exprtk.hpp:22738

References active, data, depth, e_none, index, ip_index, name, ref_count, size, str_node, type, var_node, and vec_node.

Referenced by operator<().

Here is the caller graph for this function:

Member Function Documentation

◆ clear()

template<typename T>
void exprtk::parser< T >::scope_element::clear ( )
inline

Definition at line 22711 of file exprtk.hpp.

22712 {
22713 name = "???";
22717 type = e_none;
22718 active = false;
22719 ref_count = 0;
22720 ip_index = 0;
22721 data = 0;
22722 var_node = 0;
22723 vec_node = 0;
22724 #ifndef exprtk_disable_string_capabilities
22725 str_node = 0;
22726 #endif
22727 }

References active, data, depth, e_none, index, ip_index, name, ref_count, size, str_node, type, var_node, and vec_node.

Referenced by exprtk::parser< T >::scope_element_manager::free_element().

Here is the caller graph for this function:

◆ operator<()

template<typename T>
bool exprtk::parser< T >::scope_element::operator< ( const scope_element & se) const
inline

Definition at line 22693 of file exprtk.hpp.

22694 {
22695 if (ip_index < se.ip_index)
22696 return true;
22697 else if (ip_index > se.ip_index)
22698 return false;
22699 else if (depth < se.depth)
22700 return true;
22701 else if (depth > se.depth)
22702 return false;
22703 else if (index < se.index)
22704 return true;
22705 else if (index > se.index)
22706 return false;
22707 else
22708 return (name < se.name);
22709 }

References depth, index, ip_index, name, and scope_element().

Here is the call graph for this function:

Member Data Documentation

◆ active

◆ data

◆ depth

◆ index

◆ ip_index

template<typename T>
std::size_t exprtk::parser< T >::scope_element::ip_index

Definition at line 22734 of file exprtk.hpp.

Referenced by clear(), operator<(), and scope_element().

◆ name

◆ ref_count

template<typename T>
std::size_t exprtk::parser< T >::scope_element::ref_count

◆ size

template<typename T>
std::size_t exprtk::parser< T >::scope_element::size

◆ str_node

template<typename T>
stringvar_node_ptr exprtk::parser< T >::scope_element::str_node

◆ type

◆ var_node

◆ vec_node


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