29 #ifndef MU_PARSER_BYTECODE_H
30 #define MU_PARSER_BYTECODE_H
95 typedef std::vector<SToken> rpn_type;
101 std::size_t m_iMaxStackSize;
106 bool m_bEnableOptimizer;
108 void ConstantFolding(
ECmdCode a_Oprt);
126 void EnableOptimizer(
bool bStat);
130 std::size_t GetMaxStackSize()
const;
132 std::size_t GetSize()
const
134 return m_vRPN.size();
137 inline const SToken* GetBase()
const
139 if (m_vRPN.size() == 0)
void AddStrFun(generic_callable_type a_pFun, int a_iArgc, int a_iIdx)
Add Strung function entry to the parser bytecode.
Internal error of any kind.
void AddAssignOp(value_type *a_pVar)
Add an assignment operator.
void Assign(const ParserByteCode &a_ByteCode)
Copy state of another object to this.
void AddOp(ECmdCode a_Oprt)
Add an operator identifier to bytecode.
void AsciiDump()
Dump bytecode (for debugging only!).
ParserByteCode()
Bytecode default constructor.
void AddBulkFun(generic_callable_type a_pFun, int a_iArgc)
Add a bulk function to bytecode.
void AddVal(value_type a_fVal)
Add a Variable pointer to bytecode.
Error class of the parser.
void AddFun(generic_callable_type a_pFun, int a_iArgc, bool isOptimizable)
Add function to bytecode.
MUP_BASETYPE value_type
The numeric datatype used by the parser.
Namespace for mathematical applications.
Bytecode implementation of the Math Parser.
This file contains the parser token definition.
void clear()
Delete the bytecode.
void AddVar(value_type *a_pVar)
Add a Variable pointer to bytecode.
ParserByteCode & operator=(const ParserByteCode &a_ByteCode)
Assignment operator.
void Finalize()
Add end marker to bytecode.
This file defines the error class used by the parser.
This file contains standard definitions used by the parser.