Shi
Loading...
Searching...
No Matches
shi Namespace Reference

Namespaces

namespace  literals
 

Classes

struct  Init
 Init struct. More...
 
struct  is_reference_wrapper
 
struct  is_reference_wrapper< std::reference_wrapper< U > >
 
struct  remove_cvref
 
struct  Word
 Word. More...
 

Typedefs

template<typename T >
using remove_cvref_t = typename remove_cvref<T>::type
 

Functions

size_t depth ()
 
size_t size ()
 
template<typename T >
void push (T &&t)
 
template<typename... Ts>
void push (Ts &&... ts)
 
template<typename T = int32_t>
pop ()
 
template<typename... Ts, typename = std::enable_if_t<(sizeof...(Ts) > 1)>>
std::tuple< Ts... > pop ()
 
template<typename T = int32_t>
decltype(auto) top (size_t offset=0)
 
void shi_init_asm (Init &)
 
void init (Init s)
 
void evaluate (char const *str)
 
void evaluate (char const *str, size_t len)
 
template<typename T >
void variable (T adr, char const *str)
 
template<typename T >
void variable (T adr, char const *str, size_t len)
 
void clear ()
 Clear stack.
 
void_fp tick (char const *str)
 
void_fp tick (char const *str, size_t len)
 

Variables

template<typename T >
constexpr bool is_reference_wrapper_v {is_reference_wrapper<T>::value}
 

Typedef Documentation

◆ remove_cvref_t

template<typename T >
using shi::remove_cvref_t = typename remove_cvref<T>::type

Function Documentation

◆ clear()

void shi::clear ( )
inline

Clear stack.

Here is the call graph for this function:

◆ depth()

size_t shi::depth ( )
inline

Returns the number of elements on the stack

Returns
Number of elements on stack
Here is the call graph for this function:
Here is the caller graph for this function:

◆ evaluate() [1/2]

void shi::evaluate ( char const * str)
inline

Evaluate

Parameters
strPointer to the null-terminated byte string
Here is the call graph for this function:

◆ evaluate() [2/2]

void shi::evaluate ( char const * str,
size_t len )
inline

Evaluate

Parameters
strPointer to the null-terminated byte string
lenLength of the null-terminated string
Here is the call graph for this function:

◆ init()

void shi::init ( Init s)
inline

Initialize

Parameters
sInit struct
Here is the call graph for this function:

◆ pop() [1/2]

template<typename T = int32_t>
T shi::pop ( )

Remove element from the top of the stack

Template Parameters
TType of element to pop
Returns
Value
Here is the caller graph for this function:

◆ pop() [2/2]

template<typename... Ts, typename = std::enable_if_t<(sizeof...(Ts) > 1)>>
std::tuple< Ts... > shi::pop ( )

Remove elements from the top of the stack

Template Parameters
TsTypes of element to pop
Returns
Values
Here is the call graph for this function:

◆ push() [1/2]

template<typename T >
void shi::push ( T && t)

Add element to the top of the stack

Template Parameters
TType of element to push
Parameters
tValue to push
Here is the caller graph for this function:

◆ push() [2/2]

template<typename... Ts>
void shi::push ( Ts &&... ts)

Add elements to the top of the stack

Template Parameters
TsTypes of elements to push
Parameters
tsValues to push
Here is the call graph for this function:

◆ shi_init_asm()

void shi::shi_init_asm ( Init & )
Here is the caller graph for this function:

◆ size()

size_t shi::size ( )
inline

Returns the number of elements on the stack

Returns
Number of elements on stack
Here is the call graph for this function:
Here is the caller graph for this function:

◆ tick() [1/2]

void_fp shi::tick ( char const * str)
inline

Tick

Parameters
strPointer to the null-terminated byte string
Returns
Function pointer
Here is the call graph for this function:

◆ tick() [2/2]

void_fp shi::tick ( char const * str,
size_t len )
inline

Tick

Parameters
strPointer to the null-terminated byte string
lenLength of the null-terminated string
Returns
Function pointer
Here is the call graph for this function:

◆ top()

template<typename T = int32_t>
decltype(auto) shi::top ( size_t offset = 0)

Get element from the stack

Template Parameters
TType of element to get
Parameters
offsetOffset in cells
Returns
Value for built-in types
Reference for user-defined types

◆ variable() [1/2]

template<typename T >
void shi::variable ( T adr,
char const * str )

Create reference to C variable

Template Parameters
TType of address
Parameters
adrAddress of variable
strPointer to the null-terminated byte string
Here is the call graph for this function:

◆ variable() [2/2]

template<typename T >
void shi::variable ( T adr,
char const * str,
size_t len )

Create reference to C variable

Template Parameters
TType of address
Parameters
adrAddress of variable
strPointer to the null-terminated byte string
lenLength of the null-terminated string
Here is the call graph for this function:

Variable Documentation

◆ is_reference_wrapper_v

template<typename T >
bool shi::is_reference_wrapper_v {is_reference_wrapper<T>::value}
inlineconstexpr