OpenTTD Source: Squirrel Class Reference

OpenTTD Source 15.3

Public Member Functions | Static Public Member Functions | Static Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | Friends
Squirrel Class Reference

## Public Member Functions
| Squirrel (std::string_view api_name)
HSQUIRRELVM | GetVM ()
| Get the squirrel VM.
bool | LoadScript (const std::string &script)
| Load a script.
bool | LoadScript (HSQUIRRELVM vm, const std::string &script, bool in_root=true)
SQRESULT | LoadFile (HSQUIRRELVM vm, const std::string &filename, SQBool printerror)
| Load a file to a given VM.
void | AddMethod (std::string_view method_name, SQFUNCTION proc, std::string_view params={}, void *userdata=nullptr, int size=0)
| Adds a function to the stack.
void | AddConst (std::string_view var_name, SQInteger value)
| Adds a const to the stack.
void | AddConst (std::string_view var_name, uint value)
| Adds a const to the stack.
void | AddConst (std::string_view var_name, int value)
| Adds a const to the stack.
void | AddConst (std::string_view var_name, const ConvertibleThroughBase auto &value)
void | AddConst (std::string_view var_name, bool value)
| Adds a const to the stack.
void | AddClassBegin (std::string_view class_name)
| Adds a class to the global scope.
void | AddClassBegin (std::string_view class_name, std::string_view parent_class)
| Adds a class to the global scope, extending 'parent_class'.
void | AddClassEnd ()
| Finishes adding a class to the global scope.
bool | Resume (int suspend=-1)
| Resume a VM when it was suspended via a throw.
void | ResumeError ()
| Resume the VM with an error so it prints a stack trace.
void | CollectGarbage ()
| Tell the VM to do a garbage collection run.
void | InsertResult (bool result)
void | InsertResult (int result)
void | InsertResult (uint result)
void | InsertResult (ConvertibleThroughBase auto result)
bool | CallMethod (HSQOBJECT instance, std::string_view method_name, HSQOBJECT *ret, int suspend)
| Call a method of an instance, in various flavors.
bool | CallMethod (HSQOBJECT instance, std::string_view method_name, int suspend)
bool | CallStringMethod (HSQOBJECT instance, std::string_view method_name, std::string *res, int suspend)
bool | CallIntegerMethod (HSQOBJECT instance, std::string_view method_name, int *res, int suspend)
bool | CallBoolMethod (HSQOBJECT instance, std::string_view method_name, bool *res, int suspend)
bool | MethodExists (HSQOBJECT instance, std::string_view method_name)
| Check if a method exists in an instance.
bool | CreateClassInstance (const std::string &class_name, void *real_instance, HSQOBJECT *instance)
| Exactly the same as CreateClassInstanceVM, only callable without instance of Squirrel.
void | SetGlobalPointer (void *ptr)
| Sets a pointer in the VM that is reachable from where ever you are in SQ.
void | SetPrintFunction (SQPrintFunc *func)
| Set a custom print function, so you can handle outputs from SQ yourself.
void | ThrowError (std::string_view error)
| Throw a Squirrel error that will be nicely displayed to the user.
void | ReleaseObject (HSQOBJECT *ptr)
| Release a SQ object.
bool | IsSuspended ()
| Did the squirrel code suspend or return normally.
bool | HasScriptCrashed ()
| Find out if the squirrel script made an error before.
void | CrashOccurred ()
| Set the script status to crashed.
bool | CanSuspend ()
| Are we allowed to suspend the squirrel script at this moment?
SQInteger | GetOpsTillSuspend ()
| How many operations can we execute till suspension?
void | Reset ()
| Completely reset the engine; start from scratch.
size_t | GetAllocatedMemory () const noexcept
| Get number of bytes allocated by this VM.

## Static Public Member Functions
static bool | CreateClassInstanceVM (HSQUIRRELVM vm, const std::string &class_name, void *real_instance, HSQOBJECT *instance, SQRELEASEHOOK release_hook, bool prepend_API_name=false)
| Creates a class instance.
static SQUserPointer | GetRealInstance (HSQUIRRELVM vm, int index, std::string_view tag)
| Get the real-instance pointer.
static bool | GetInstance (HSQUIRRELVM vm, HSQOBJECT *ptr, int pos=1)
| Get the Squirrel-instance pointer.
static std::optional< std::string_view > | ObjectToString (HSQOBJECT *ptr)
| Convert a Squirrel-object to a string.
static int | ObjectToInteger (HSQOBJECT *ptr)
| Convert a Squirrel-object to an integer.
static bool | ObjectToBool (HSQOBJECT *ptr)
| Convert a Squirrel-object to a bool.
static void * | GetGlobalPointer (HSQUIRRELVM vm)
| Get the pointer as set by SetGlobalPointer.
static void | DecreaseOps (HSQUIRRELVM vm, int amount)
| Tell the VM to remove `amount` ops from the number of ops till suspend.

## Static Protected Member Functions
static void | CompileError (HSQUIRRELVM vm, std::string_view desc, std::string_view source, SQInteger line, SQInteger column)
| The CompileError handler.
static void | RunError (HSQUIRRELVM vm, std::string_view error)
| The RunError handler.
static void | PrintFunc (HSQUIRRELVM vm, std::string_view s)
| If a user runs 'print' inside a script, this function gets the params.
static void | ErrorPrintFunc (HSQUIRRELVM vm, std::string_view s)
| If an error has to be print, this function is called.

## Private Types
using | SQPrintFunc = void(bool error_msg, std::string_view message)

## Private Member Functions
std::string_view | GetAPIName ()
| Get the API name.
void | Initialize ()
| Perform all initialization steps to create the engine.
void | Uninitialize ()
| Perform all the cleanups for the engine.

## Static Private Member Functions
static SQInteger | _RunError (HSQUIRRELVM vm)
| The internal RunError handler.

## Private Attributes
HSQUIRRELVM | vm
| The VirtualMachine instance for squirrel.
void * | global_pointer
| Can be set by who ever initializes Squirrel.
SQPrintFunc * | print_func
| Points to either nullptr, or a custom print handler.
bool | crashed
| True if the squirrel script made an error.
int | overdrawn_ops
| The amount of operations we have overdrawn.
std::string_view | api_name
| Name of the API used for this squirrel.
std::unique_ptr< ScriptAllocator > | allocator
| Allocator object used by this script.

## Friends
class | ScriptAllocatorScope
class | ScriptInstance

## Detailed Description

Definition at line 24 of file squirrel.hpp.

## Member Typedef Documentation

## ◆ SQPrintFunc

using Squirrel::SQPrintFunc = void (bool error_msg, std::string_view message)
| private

Definition at line 29 of file squirrel.hpp.

## Constructor & Destructor Documentation

## ◆ Squirrel()

Squirrel::Squirrel | ( | std::string_view | api_name | ) |

Definition at line 510 of file squirrel.cpp.

## ◆ ~Squirrel()

Squirrel::~Squirrel | ( |  | ) |

Definition at line 718 of file squirrel.cpp.

## Member Function Documentation

## ◆ _RunError()

SQInteger Squirrel::_RunError | ( | HSQUIRRELVM | vm | ) |
| staticprivate

The internal RunError handler.

It looks up the real error and calls RunError with it.

Definition at line 230 of file squirrel.cpp.

References RunError(), and vm.

Referenced by Initialize().

## ◆ AddClassBegin() [1/2]

void Squirrel::AddClassBegin | ( | std::string_view | class_name | ) |

Adds a class to the global scope.

Make sure to call AddClassEnd when you are done adding methods.

Definition at line 291 of file squirrel.cpp.

References vm.

Referenced by AILibrary::RegisterAPI(), and GameLibrary::RegisterAPI().

## ◆ AddClassBegin() [2/2]

void Squirrel::AddClassBegin | ( | std::string_view | class_name,
|  | std::string_view | parent_class
| ) |  |

Adds a class to the global scope, extending 'parent_class'.

Make sure to call AddClassEnd when you are done adding methods.

Definition at line 300 of file squirrel.cpp.

References Debug, and vm.

## ◆ AddClassEnd()

void Squirrel::AddClassEnd | ( |  | ) |

Finishes adding a class to the global scope.

If this isn't called, no class is really created.

Definition at line 315 of file squirrel.cpp.

References vm.

Referenced by AILibrary::RegisterAPI(), and GameLibrary::RegisterAPI().

## ◆ AddConst() [1/5]

void Squirrel::AddConst | ( | std::string_view | var_name,
|  | bool | value
| ) |  |

Adds a const to the stack.

Depending on the current state this means either a const to a class or to the global space.

Definition at line 282 of file squirrel.cpp.

References vm.

## ◆ AddConst() [2/5]

void Squirrel::AddConst | ( | std::string_view | var_name,
|  | const ConvertibleThroughBase auto & | value
| ) |  |
| inline

Definition at line 121 of file squirrel.hpp.

## ◆ AddConst() [3/5]

void Squirrel::AddConst | ( | std::string_view | var_name,
|  | int | value
| ) |  |
| inline

Adds a const to the stack.

Depending on the current state this means either a const to a class or to the global space.

Definition at line 119 of file squirrel.hpp.

References AddConst().

Referenced by AddConst().

## ◆ AddConst() [4/5]

void Squirrel::AddConst | ( | std::string_view | var_name,
|  | SQInteger | value
| ) |  |

Adds a const to the stack.

Depending on the current state this means either a const to a class or to the global space.

Definition at line 273 of file squirrel.cpp.

References vm.

## ◆ AddConst() [5/5]

void Squirrel::AddConst | ( | std::string_view | var_name,
|  | uint | value
| ) |  |
| inline

Adds a const to the stack.

Depending on the current state this means either a const to a class or to the global space.

Definition at line 113 of file squirrel.hpp.

References AddConst().

Referenced by AddConst().

## ◆ AddMethod()

void Squirrel::AddMethod | ( | std::string_view | method_name,
|  | SQFUNCTION | proc,
|  | std::string_view | params = `{}`,
|  | void * | userdata = `nullptr`,
|  | int | size = `0`
| ) |  |

Adds a function to the stack.

Depending on the current state this means either a method or a global function.

Definition at line 256 of file squirrel.cpp.

References vm.

Referenced by DefSQClass< CL, ST >::DefSQAdvancedMethod(), DefSQClass< CL, ST >::DefSQAdvancedStaticMethod(), AIInfo::RegisterAPI(), AILibrary::RegisterAPI(), GameInfo::RegisterAPI(), GameLibrary::RegisterAPI(), squirrel_register_global_std(), and squirrel_register_std().

## ◆ CallBoolMethod()

bool Squirrel::CallBoolMethod | ( | HSQOBJECT | instance,
|  | std::string_view | method_name,
|  | bool * | res,
|  | int | suspend
| ) |  |

Definition at line 431 of file squirrel.cpp.

## ◆ CallIntegerMethod()

bool Squirrel::CallIntegerMethod | ( | HSQOBJECT | instance,
|  | std::string_view | method_name,
|  | int * | res,
|  | int | suspend
| ) |  |

Definition at line 422 of file squirrel.cpp.

## ◆ CallMethod() [1/2]

bool Squirrel::CallMethod | ( | HSQOBJECT | instance,
|  | std::string_view | method_name,
|  | HSQOBJECT * | ret,
|  | int | suspend
| ) |  |

Call a method of an instance, in various flavors.

Returns
  False if the script crashed or returned a wrong type.

Definition at line 376 of file squirrel.cpp.

References crashed, Debug, IsSuspended(), and vm.

Referenced by ScriptInfo::GetSettings().

## ◆ CallMethod() [2/2]

bool Squirrel::CallMethod | ( | HSQOBJECT | instance,
|  | std::string_view | method_name,
|  | int | suspend
| ) |  |
| inline

Definition at line 172 of file squirrel.hpp.

## ◆ CallStringMethod()

bool Squirrel::CallStringMethod | ( | HSQOBJECT | instance,
|  | std::string_view | method_name,
|  | std::string * | res,
|  | int | suspend
| ) |  |

Definition at line 410 of file squirrel.cpp.

## ◆ CanSuspend()

bool Squirrel::CanSuspend | ( |  | ) |

Are we allowed to suspend the squirrel script at this moment?

Definition at line 789 of file squirrel.cpp.

## ◆ CollectGarbage()

void Squirrel::CollectGarbage | ( |  | ) |

Tell the VM to do a garbage collection run.

Definition at line 370 of file squirrel.cpp.

References vm.

## ◆ CompileError()

void Squirrel::CompileError | ( | HSQUIRRELVM | vm,
|  | std::string_view | desc,
|  | std::string_view | source,
|  | SQInteger | line,
|  | SQInteger | column
| ) |  |
| staticprotected

The CompileError handler.

Definition at line 182 of file squirrel.cpp.

References crashed, Debug, print_func, and vm.

Referenced by Initialize().

## ◆ CrashOccurred()

void Squirrel::CrashOccurred | ( |  | ) |

Set the script status to crashed.

Definition at line 784 of file squirrel.cpp.

References crashed.

## ◆ CreateClassInstance()

bool Squirrel::CreateClassInstance | ( | const std::string & | class_name,
|  | void * | real_instance,
|  | HSQOBJECT * | instance
| ) |  |

Exactly the same as CreateClassInstanceVM, only callable without instance of Squirrel.

Definition at line 487 of file squirrel.cpp.

References CreateClassInstanceVM(), and vm.

## ◆ CreateClassInstanceVM()

bool Squirrel::CreateClassInstanceVM | ( | HSQUIRRELVM | vm,
|  | const std::string & | class_name,
|  | void * | real_instance,
|  | HSQOBJECT * | instance,
|  | SQRELEASEHOOK | release_hook,
|  | bool | prepend_API_name = `false`
| ) |  |
| static

Creates a class instance.

Parameters

  vm | The VM to create the class instance for
  class_name | The name of the class of which we create an instance.
  real_instance | The instance to the real class, if it represents a real class.
  instance | Returning value with the pointer to the instance.
  release_hook | Optional param to give a release hook.
  prepend_API_name | Optional parameter; if true, the class_name is prefixed with the current API name.

Returns
  False if creating failed.

Definition at line 440 of file squirrel.cpp.

References Debug, GetAPIName(), and vm.

Referenced by CreateClassInstance().

## ◆ DecreaseOps()

void Squirrel::DecreaseOps | ( | HSQUIRRELVM | vm,
|  | int | amount
| ) |  |
| static

Tell the VM to remove `amount` ops from the number of ops till suspend.

Definition at line 769 of file squirrel.cpp.

References vm.

Referenced by ScriptInstance::Pause().

## ◆ ErrorPrintFunc()

void Squirrel::ErrorPrintFunc | ( | HSQUIRRELVM | vm,
|  | std::string_view | s
| ) |  |
| staticprotected

If an error has to be print, this function is called.

Definition at line 197 of file squirrel.cpp.

References print_func, and vm.

Referenced by RunError().

## ◆ GetAllocatedMemory()

size_t Squirrel::GetAllocatedMemory | ( |  | ) | const
| noexcept

Get number of bytes allocated by this VM.

Definition at line 175 of file squirrel.cpp.

## ◆ GetAPIName()

std::string_view Squirrel::GetAPIName | ( |  | ) |
| inlineprivate

Get the API name.

Definition at line 47 of file squirrel.hpp.

References api_name.

Referenced by CreateClassInstanceVM(), GetRealInstance(), and LoadFile().

## ◆ GetGlobalPointer()

static void * Squirrel::GetGlobalPointer | ( | HSQUIRRELVM | vm | ) |
| inlinestatic

Get the pointer as set by SetGlobalPointer.

Definition at line 237 of file squirrel.hpp.

References vm.

Referenced by ScriptInfo::Constructor().

## ◆ GetInstance()

static bool Squirrel::GetInstance | ( | HSQUIRRELVM | vm,
|  | HSQOBJECT * | ptr,
|  | int | pos = `1`
| ) |  |
| inlinestatic

Get the Squirrel-instance pointer.

Note
  This will only work just after a function-call from within Squirrel to your C++ function.

Definition at line 211 of file squirrel.hpp.

References vm.

Referenced by ScriptInfo::Constructor(), SQConvert::DefSQAdvancedNonStaticCallback(), and SQConvert::DefSQNonStaticCallback().

## ◆ GetOpsTillSuspend()

SQInteger Squirrel::GetOpsTillSuspend | ( |  | ) |

How many operations can we execute till suspension?

Definition at line 795 of file squirrel.cpp.

Referenced by ScriptInstance::GetOpsTillSuspend().

## ◆ GetRealInstance()

SQUserPointer Squirrel::GetRealInstance | ( | HSQUIRRELVM | vm,
|  | int | index,
|  | std::string_view | tag
| ) |  |
| static

Get the real-instance pointer.

Note
  This will only work just after a function-call from within Squirrel to your C++ function.

Definition at line 493 of file squirrel.cpp.

References GetAPIName(), and vm.

Referenced by ScriptInstance::SaveObject().

## ◆ GetVM()

HSQUIRRELVM Squirrel::GetVM | ( |  | ) |
| inline

Get the squirrel VM.

Try to avoid using this.

Definition at line 82 of file squirrel.hpp.

References vm.

Referenced by ScriptInstance::CallLoad(), ScriptInstance::LoadOnStack(), RegisterGameTranslation(), and squirrel_register_std().

## ◆ HasScriptCrashed()

bool Squirrel::HasScriptCrashed | ( |  | ) |

Find out if the squirrel script made an error before.

Definition at line 779 of file squirrel.cpp.

References crashed.

## ◆ Initialize()

void Squirrel::Initialize | ( |  | ) |
| private

Perform all initialization steps to create the engine.

Definition at line 516 of file squirrel.cpp.

References _RunError(), CompileError(), crashed, global_pointer, overdrawn_ops, print_func, PrintFunc(), squirrel_register_global_std(), and vm.

Referenced by Reset().

## ◆ InsertResult() [1/4]

void Squirrel::InsertResult | ( | bool | result | ) |

Definition at line 747 of file squirrel.cpp.

## ◆ InsertResult() [2/4]

void Squirrel::InsertResult | ( | ConvertibleThroughBase auto | result | ) |
| inline

Definition at line 165 of file squirrel.hpp.

## ◆ InsertResult() [3/4]

void Squirrel::InsertResult | ( | int | result | ) |

Definition at line 758 of file squirrel.cpp.

## ◆ InsertResult() [4/4]

void Squirrel::InsertResult | ( | uint | result | ) |
| inline

Definition at line 164 of file squirrel.hpp.

## ◆ IsSuspended()

bool Squirrel::IsSuspended | ( |  | ) |

Did the squirrel code suspend or return normally.

Returns
  True if the function suspended.

Definition at line 774 of file squirrel.cpp.

Referenced by CallMethod().

## ◆ LoadFile()

SQRESULT Squirrel::LoadFile | ( | HSQUIRRELVM | vm,
|  | const std::string & | filename,
|  | SQBool | printerror
| ) |  |

Load a file to a given VM.

Definition at line 622 of file squirrel.cpp.

References AI_DIR, AI_LIBRARY_DIR, FioFOpenFile(), GAME_DIR, GAME_LIBRARY_DIR, GetAPIName(), and vm.

## ◆ LoadScript() [1/2]

bool Squirrel::LoadScript | ( | const std::string & | script | ) |

Load a script.

Parameters

  script | The full script-name to load.

Returns
  False if loading failed.

Definition at line 713 of file squirrel.cpp.

References LoadScript().

Referenced by LoadScript(), and SquirrelStd::require().

## ◆ LoadScript() [2/2]

bool Squirrel::LoadScript | ( | HSQUIRRELVM | vm,
|  | const std::string & | script,
|  | bool | in_root = `true`
| ) |  |

Definition at line 689 of file squirrel.cpp.

## ◆ MethodExists()

bool Squirrel::MethodExists | ( | HSQOBJECT | instance,
|  | std::string_view | method_name
| ) |  |

Check if a method exists in an instance.

Definition at line 323 of file squirrel.cpp.

References crashed, and vm.

Referenced by ScriptInstance::CallLoad(), ScriptInfo::CheckMethod(), AIInfo::Constructor(), GameInfo::Constructor(), and ScriptInfo::Constructor().

## ◆ ObjectToBool()

static bool Squirrel::ObjectToBool | ( | HSQOBJECT * | ptr | ) |
| inlinestatic

Convert a Squirrel-object to a bool.

Definition at line 226 of file squirrel.hpp.

## ◆ ObjectToInteger()

static int Squirrel::ObjectToInteger | ( | HSQOBJECT * | ptr | ) |
| inlinestatic

Convert a Squirrel-object to an integer.

Definition at line 221 of file squirrel.hpp.

## ◆ ObjectToString()

static std::optional< std::string_view > Squirrel::ObjectToString | ( | HSQOBJECT * | ptr | ) |
| inlinestatic

Convert a Squirrel-object to a string.

Definition at line 216 of file squirrel.hpp.

## ◆ PrintFunc()

void Squirrel::PrintFunc | ( | HSQUIRRELVM | vm,
|  | std::string_view | s
| ) |  |
| staticprotected

If a user runs 'print' inside a script, this function gets the params.

Definition at line 245 of file squirrel.cpp.

References print_func, and vm.

Referenced by Initialize().

## ◆ ReleaseObject()

void Squirrel::ReleaseObject | ( | HSQOBJECT * | ptr | ) |
| inline

Release a SQ object.

Definition at line 252 of file squirrel.hpp.

Referenced by ScriptInstance::ReleaseSQObject().

## ◆ Reset()

void Squirrel::Reset | ( |  | ) |

Completely reset the engine; start from scratch.

Definition at line 741 of file squirrel.cpp.

References Initialize(), and Uninitialize().

## ◆ Resume()

bool Squirrel::Resume | ( | int | suspend = `-1` | ) |

Resume a VM when it was suspended via a throw.

Definition at line 341 of file squirrel.cpp.

References crashed, overdrawn_ops, and vm.

## ◆ ResumeError()

void Squirrel::ResumeError | ( |  | ) |

Resume the VM with an error so it prints a stack trace.

Definition at line 363 of file squirrel.cpp.

References crashed, and vm.

## ◆ RunError()

void Squirrel::RunError | ( | HSQUIRRELVM | vm,
|  | std::string_view | error
| ) |  |
| staticprotected

The RunError handler.

Definition at line 208 of file squirrel.cpp.

References ErrorPrintFunc(), print_func, and vm.

Referenced by _RunError().

## ◆ SetGlobalPointer()

void Squirrel::SetGlobalPointer | ( | void * | ptr | ) |
| inline

Sets a pointer in the VM that is reachable from where ever you are in SQ.

Useful to keep track of the main instance.

Definition at line 232 of file squirrel.hpp.

## ◆ SetPrintFunction()

void Squirrel::SetPrintFunction | ( | SQPrintFunc * | func | ) |
| inline

Set a custom print function, so you can handle outputs from SQ yourself.

Definition at line 242 of file squirrel.hpp.

## ◆ ThrowError()

void Squirrel::ThrowError | ( | std::string_view | error | ) |
| inline

Throw a Squirrel error that will be nicely displayed to the user.

Definition at line 247 of file squirrel.hpp.

Referenced by ScriptInfo::AddLabels(), ScriptInfo::AddSetting(), and ScriptInfo::CheckMethod().

## ◆ Uninitialize()

void Squirrel::Uninitialize | ( |  | ) |
| private

Perform all the cleanups for the engine.

Definition at line 723 of file squirrel.cpp.

Referenced by Reset().

## Friends And Related Symbol Documentation

## ◆ ScriptAllocatorScope

friend class ScriptAllocatorScope
| friend

Definition at line 25 of file squirrel.hpp.

## ◆ ScriptInstance

friend class ScriptInstance
| friend

Definition at line 26 of file squirrel.hpp.

## Field Documentation

## ◆ allocator

std::unique_ptr<ScriptAllocator> Squirrel::allocator
| private

Allocator object used by this script.

Definition at line 37 of file squirrel.hpp.

## ◆ api_name

std::string_view Squirrel::api_name
| private

Name of the API used for this squirrel.

Definition at line 36 of file squirrel.hpp.

Referenced by GetAPIName().

## ◆ crashed

bool Squirrel::crashed
| private

True if the squirrel script made an error.

Definition at line 34 of file squirrel.hpp.

Referenced by CallMethod(), CompileError(), CrashOccurred(), HasScriptCrashed(), Initialize(), MethodExists(), Resume(), and ResumeError().

## ◆ global_pointer

void* Squirrel::global_pointer
| private

Can be set by who ever initializes Squirrel.

Definition at line 32 of file squirrel.hpp.

Referenced by Initialize().

## ◆ overdrawn_ops

int Squirrel::overdrawn_ops
| private

The amount of operations we have overdrawn.

Definition at line 35 of file squirrel.hpp.

Referenced by Initialize(), and Resume().

## ◆ print_func

SQPrintFunc* Squirrel::print_func
| private

Points to either nullptr, or a custom print handler.

Definition at line 33 of file squirrel.hpp.

Referenced by CompileError(), ErrorPrintFunc(), Initialize(), PrintFunc(), and RunError().

## ◆ vm

HSQUIRRELVM Squirrel::vm
| private

The VirtualMachine instance for squirrel.

Definition at line 31 of file squirrel.hpp.

Referenced by _RunError(), AddClassBegin(), AddClassBegin(), AddClassEnd(), AddConst(), AddConst(), AddMethod(), CallMethod(), CollectGarbage(), CompileError(), CreateClassInstance(), CreateClassInstanceVM(), DecreaseOps(), ErrorPrintFunc(), GetGlobalPointer(), GetInstance(), GetRealInstance(), GetVM(), Initialize(), LoadFile(), MethodExists(), PrintFunc(), Resume(), ResumeError(), and RunError().

The documentation for this class was generated from the following files:

- src/script/squirrel.hpp
- src/script/squirrel.cpp