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 22306 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 22322 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 22319 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 22324 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 22320 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 22321 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 22318 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 22308 of file exprtk.hpp.

Constructor & Destructor Documentation

◆ scope_element()

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

Definition at line 22327 of file exprtk.hpp.

22328 : name("???")
22329 , size (std::numeric_limits<std::size_t>::max())
22330 , index(std::numeric_limits<std::size_t>::max())
22331 , depth(std::numeric_limits<std::size_t>::max())
22332 , ref_count(0)
22333 , ip_index (0)
22334 , type (e_none)
22335 , active (false)
22336 , data (0)
22337 , var_node (0)
22338 , vec_node (0)
22339 #ifndef exprtk_disable_string_capabilities
22340 , str_node(0)
22341 #endif
22342 {}
stringvar_node_ptr str_node
Definition exprtk.hpp:22392
vector_holder_ptr vec_node
Definition exprtk.hpp:22390
expression_node_ptr var_node
Definition exprtk.hpp:22389

Member Function Documentation

◆ clear()

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

Definition at line 22362 of file exprtk.hpp.

22363 {
22364 name = "???";
22365 size = std::numeric_limits<std::size_t>::max();
22366 index = std::numeric_limits<std::size_t>::max();
22367 depth = std::numeric_limits<std::size_t>::max();
22368 type = e_none;
22369 active = false;
22370 ref_count = 0;
22371 ip_index = 0;
22372 data = 0;
22373 var_node = 0;
22374 vec_node = 0;
22375 #ifndef exprtk_disable_string_capabilities
22376 str_node = 0;
22377 #endif
22378 }

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 22344 of file exprtk.hpp.

22345 {
22346 if (ip_index < se.ip_index)
22347 return true;
22348 else if (ip_index > se.ip_index)
22349 return false;
22350 else if (depth < se.depth)
22351 return true;
22352 else if (depth > se.depth)
22353 return false;
22354 else if (index < se.index)
22355 return true;
22356 else if (index > se.index)
22357 return false;
22358 else
22359 return (name < se.name);
22360 }

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: