C++ Mathematical Expression Toolkit (ExprTk) release
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Public Attributes | List of all members
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_tliteral_node_ptr
 
typedef variable_node_tvariable_node_ptr
 
typedef vector_holder_tvector_holder_ptr
 
typedef expression_node_texpression_node_ptr
 
typedef stringvar_node_tstringvar_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 22571 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 22587 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 22584 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 22589 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 22585 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 22586 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 22583 of file exprtk.hpp.

Member Enumeration Documentation

◆ element_type

template<typename T >
enum exprtk::parser::scope_element::element_type
Enumerator
e_none 
e_literal 
e_variable 
e_vector 
e_vecelem 
e_string 

Definition at line 22573 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ scope_element()

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

Definition at line 22592 of file exprtk.hpp.

22593 : name("???")
22594 , size (std::numeric_limits<std::size_t>::max())
22595 , index(std::numeric_limits<std::size_t>::max())
22596 , depth(std::numeric_limits<std::size_t>::max())
22597 , ref_count(0)
22598 , ip_index (0)
22599 , type (e_none)
22600 , active (false)
22601 , data (0)
22602 , var_node (0)
22603 , vec_node (0)
22604 #ifndef exprtk_disable_string_capabilities
22605 , str_node(0)
22606 #endif
22607 {}
stringvar_node_ptr str_node
Definition exprtk.hpp:22657
vector_holder_ptr vec_node
Definition exprtk.hpp:22655
expression_node_ptr var_node
Definition exprtk.hpp:22654

Member Function Documentation

◆ clear()

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

Definition at line 22627 of file exprtk.hpp.

22628 {
22629 name = "???";
22630 size = std::numeric_limits<std::size_t>::max();
22631 index = std::numeric_limits<std::size_t>::max();
22632 depth = std::numeric_limits<std::size_t>::max();
22633 type = e_none;
22634 active = false;
22635 ref_count = 0;
22636 ip_index = 0;
22637 data = 0;
22638 var_node = 0;
22639 vec_node = 0;
22640 #ifndef exprtk_disable_string_capabilities
22641 str_node = 0;
22642 #endif
22643 }

References exprtk::parser< T >::scope_element::active, exprtk::parser< T >::scope_element::data, exprtk::parser< T >::scope_element::depth, exprtk::parser< T >::scope_element::e_none, exprtk::parser< T >::scope_element::index, exprtk::parser< T >::scope_element::ip_index, exprtk::parser< T >::scope_element::name, exprtk::parser< T >::scope_element::ref_count, exprtk::parser< T >::scope_element::size, exprtk::parser< T >::scope_element::str_node, exprtk::parser< T >::scope_element::type, exprtk::parser< T >::scope_element::var_node, and exprtk::parser< T >::scope_element::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 22609 of file exprtk.hpp.

22610 {
22611 if (ip_index < se.ip_index)
22612 return true;
22613 else if (ip_index > se.ip_index)
22614 return false;
22615 else if (depth < se.depth)
22616 return true;
22617 else if (depth > se.depth)
22618 return false;
22619 else if (index < se.index)
22620 return true;
22621 else if (index > se.index)
22622 return false;
22623 else
22624 return (name < se.name);
22625 }

References exprtk::parser< T >::scope_element::depth, exprtk::parser< T >::scope_element::index, exprtk::parser< T >::scope_element::ip_index, and exprtk::parser< T >::scope_element::name.

Member Data Documentation

◆ active

template<typename T >
bool exprtk::parser< T >::scope_element::active

◆ data

template<typename T >
void* exprtk::parser< T >::scope_element::data

◆ depth

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

◆ index

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

◆ ip_index

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

◆ name

template<typename T >
std::string exprtk::parser< T >::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

template<typename T >
element_type exprtk::parser< T >::scope_element::type

◆ var_node

template<typename T >
expression_node_ptr exprtk::parser< T >::scope_element::var_node

◆ vec_node

template<typename T >
vector_holder_ptr exprtk::parser< T >::scope_element::vec_node

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