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_fun_type a_pFun, int a_iArgc, int a_iIdx)
Add Strung function entry to the parser bytecode.
Internal error of any kind.
void AddBulkFun(generic_fun_type a_pFun, int a_iArgc)
Add a bulk function to bytecode.
void AddAssignOp(value_type *a_pVar)
Add an assignment operator.
void AddFun(generic_fun_type a_pFun, int a_iArgc)
Add function to bytecode.
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 AddVal(value_type a_fVal)
Add a Variable pointer to bytecode.
Error class of the parser.
MUP_BASETYPE value_type
The numeric datatype used by the parser.
Namespace for mathematical applications.
value_type(* generic_fun_type)()
Callback type used for functions without arguments.
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.