PikaScript
|
FullRoot inherits from both Root and Config::Globals (which should be a descendant to Variable). More...
#include <PikaScript.h>
Public Member Functions | |
FullRoot (bool includeIONatives=true) | |
FullRoot (bool includeIONatives=true) | |
Public Member Functions inherited from Pika::Script< Config >::Root | |
virtual void | trace (Frame &frame, const String &source, SizeType offset, bool lvalue, const Value &value, Precedence level, bool exit) |
Overload this member function if you want to customize the tracing mechanism in PikaScript. More... | |
virtual void | setTracer (Precedence traceLevel, const Value &tracerFunction) throw () |
Called by the standard library function "trace" to assign a PikaScript tracer function and a trace level. (Also called by the standard trace() on exceptions.) More... | |
bool | doTrace (Precedence level) const throw () |
String | generateLabel () |
Each "sub-frame" requires a unique "frame label". More... | |
virtual void | trace (Frame &frame, const String &source, SizeType offset, bool lvalue, const Value &value, Precedence level, bool exit) |
Overload this member function if you want to customize the tracing mechanism in PikaScript. More... | |
virtual void | setTracer (Precedence traceLevel, const Value &tracerFunction) throw () |
Called by the standard library function "trace" to assign a PikaScript tracer function and a trace level. (Also called by the standard trace() on exceptions.) More... | |
bool | doTrace (Precedence level) const throw () |
String | generateLabel () |
Each "sub-frame" requires a unique "frame label". More... | |
Public Member Functions inherited from Pika::Script< Config >::Frame | |
Frame (Variables &vars, Root &root, Frame *previous) | |
Constructs the Frame and associates it with the variable space vars . More... | |
Frame (Variables &vars, Root &root, Frame *previous) | |
Constructs the Frame and associates it with the variable space vars . More... | |
Variables & | getVariables () const throw () |
Returns a reference to the Variable instance associated with this Frame. Simple as that. | |
Root & | getRoot () const throw () |
Returns a reference to the "root frame" for this Frame. (No brainer.) | |
Frame & | getPrevious () const throw () |
Returns a reference to the previous frame (i.e. the frame of the caller of this frame). Must not be called on the root frame (will assert). | |
Variables & | getVariables () const throw () |
Returns a reference to the Variable instance associated with this Frame. Simple as that. | |
Root & | getRoot () const throw () |
Returns a reference to the "root frame" for this Frame. (No brainer.) | |
Frame & | getPrevious () const throw () |
Returns a reference to the previous frame (i.e. the frame of the caller of this frame). Must not be called on the root frame (will assert). | |
Value | get (const String &identifier, bool fallback=false) const |
Gets a variable value. More... | |
Value | getOptional (const String &identifier, const Value &defaultValue=Value()) const |
Tries to get the variable value as with get() (but never "falls back"). More... | |
const Value & | set (const String &identifier, const Value &v) |
Sets a variable value. More... | |
Value | reference (const String &identifier) const |
Creates a reference to the variable identified by identifier by prefixing it with a "frame label". More... | |
std::pair< Frame *, String > | resolveFrame (const String &identifier) const |
Resolves the frame for identifier and returns it together with identifier stripped of any prefixed "frame identifier". More... | |
Value | get (const String &identifier, bool fallback=false) const |
Gets a variable value. More... | |
Value | getOptional (const String &identifier, const Value &defaultValue=Value()) const |
Tries to get the variable value as with get() (but never "falls back"). More... | |
const Value & | set (const String &identifier, const Value &v) |
Sets a variable value. More... | |
Value | reference (const String &identifier) const |
Creates a reference to the variable identified by identifier by prefixing it with a "frame label". More... | |
std::pair< Frame *, String > | resolveFrame (const String &identifier) const |
Resolves the frame for identifier and returns it together with identifier stripped of any prefixed "frame identifier". More... | |
Value | call (const String &callee, const Value &body, long argc, const Value *argv=0) |
Calls a Pika function (by setting up a new "sub-frame" and executing the function body). More... | |
Value | execute (const String &body) |
A low-level function that executes body directly on the Frame instance. More... | |
Value | evaluate (const String source) |
Evaluates the PikaScript expression in source directly on this Frame. More... | |
StringIt | parse (const StringIt &begin, const StringIt &end, bool literal) |
Parses a PikaScript expression or literal (without evaluating it) and returns an iterator pointing at the end of the expression. | |
Value | call (const String &callee, const Value &body, long argc, const Value *argv=0) |
Calls a Pika function (by setting up a new "sub-frame" and executing the function body). More... | |
Value | execute (const String &body) |
A low-level function that executes body directly on the Frame instance. More... | |
Value | evaluate (const String source) |
Evaluates the PikaScript expression in source directly on this Frame. More... | |
StringIt | parse (const StringIt &begin, const StringIt &end, bool literal) |
Parses a PikaScript expression or literal (without evaluating it) and returns an iterator pointing at the end of the expression. | |
void | registerNative (const String &identifier, Native *native) |
Registers the native function (or object) native with identifier in the appropriate variable space (determined by any "frame identifier" present in identifier ). More... | |
template<class A0 , class R > | |
void | registerNative (const String &i, R(*f)(A0)) |
Helper template for easily registering a unary C++ function. More... | |
template<class A0 , class A1 , class R > | |
void | registerNative (const String &i, R(*f)(A0, A1)) |
Helper template for easily registering a binary C++ function. More... | |
template<class C , class A0 , class R > | |
void | registerNative (const String &i, C *o, R(C::*m)(A0)) |
Helper template for easily registering a unary C++ member function in the C++ object pointed to by o . More... | |
void | unregisterNative (const String &identifier) |
Helper function for unregistering a native function / object. More... | |
void | registerNative (const String &identifier, Native *native) |
Registers the native function (or object) native with identifier in the appropriate variable space (determined by any "frame identifier" present in identifier ). More... | |
template<class A0 , class R > | |
void | registerNative (const String &i, R(*f)(A0)) |
Helper template for easily registering a unary C++ function. More... | |
template<class A0 , class A1 , class R > | |
void | registerNative (const String &i, R(*f)(A0, A1)) |
Helper template for easily registering a binary C++ function. More... | |
template<class C , class A0 , class R > | |
void | registerNative (const String &i, C *o, R(C::*m)(A0)) |
Helper template for easily registering a unary C++ member function in the C++ object pointed to by o . More... | |
void | unregisterNative (const String &identifier) |
Helper function for unregistering a native function / object. More... | |
virtual | ~Frame () |
The default destructor does nothing, but it is always good practice to have a virtual destructor. | |
virtual | ~Frame () |
The default destructor does nothing, but it is always good practice to have a virtual destructor. | |
Additional Inherited Members | |
Protected Types inherited from Pika::Script< Config >::Frame | |
typedef std::pair< bool, Value > | XValue |
The XValue differentiates lvalues and rvalues and is used internally in the interpreter. More... | |
typedef std::pair< bool, Value > | XValue |
The XValue differentiates lvalues and rvalues and is used internally in the interpreter. More... | |
Protected Attributes inherited from Pika::Script< Config >::Root | |
Precedence | traceLevel |
Calls to trace() will only happen when the "precedence level" is less or equal to this. More... | |
Value | tracerFunction |
Pika-script tracer function (used by the default trace() implementation). | |
bool | isInsideTracer |
Set to prevent recursive calling of tracer (used by the default trace() implementation). | |
Char | autoLabel [32] |
The last generated frame label (padded with leading ':'). | |
Char * | autoLabelStart |
The first character of the last generated frame label (begins at autoLabel + 30 and slowly moves backwards when necessary). | |
FullRoot inherits from both Root and Config::Globals (which should be a descendant to Variable).
Its constructor adds the natives of the standard library. This means that by instantiating this class you will get a full execution environment for PikaScript ready to go.
Definition at line 422 of file PikaScript.h.
|
inline |
< If includeIO
is false, 'load', 'save', 'input', 'print' and 'system' will not be registered.
Definition at line 423 of file PikaScript.h.
|
inline |
< If includeIO
is false, 'load', 'save', 'input', 'print' and 'system' will not be registered.
Definition at line 423 of file PikaScript.h.