Documentation ¶
Index ¶
- func GetModule(name string) *object.Module
- func InstanceOf(class string, i *VMInstance) bool
- func RegisterBuiltin(name string, fn object.BuiltinFunction)
- func RegisterModule(name string, m *object.Module)
- func RegisterNative(name string, fn object.BuiltinFunction)
- func RegisterNativeMethod(name string, fn BuiltinMethodFunction)
- type BoundMethod
- type BuiltinClass
- type BuiltinMethod
- type BuiltinMethodFunction
- type ErrExitCode
- type Frame
- type Settings
- type VMClass
- type VMFunction
- type VMInstance
- type VirtualMachine
- func (vm *VirtualMachine) CallFunction(argc uint16, fn object.Object, now bool, this *VMInstance, unwind bool)
- func (vm *VirtualMachine) CurrentFrame() *Frame
- func (vm *VirtualMachine) Eval(node ast.Node, env *object.Environment) object.Object
- func (vm *VirtualMachine) Execute(code *compiler.CodeBlock, env *object.Environment) (object.Object, error)
- func (vm *VirtualMachine) Exit(code int)
- func (vm *VirtualMachine) GetCurrentScriptPath() string
- func (vm *VirtualMachine) GetInstanceVar(key string) interface{}
- func (vm *VirtualMachine) GetOkInstanceVar(key string) (interface{}, bool)
- func (vm *VirtualMachine) GetStderr() io.Writer
- func (vm *VirtualMachine) GetStdin() io.Reader
- func (vm *VirtualMachine) GetStdout() io.Writer
- func (vm *VirtualMachine) HasInstanceVar(key string) bool
- func (vm *VirtualMachine) MakeFrame(code *compiler.CodeBlock, env *object.Environment) *Frame
- func (vm *VirtualMachine) PopStack() object.Object
- func (vm *VirtualMachine) RemoveInstanceVar(key string)
- func (vm *VirtualMachine) RunFrame(f *Frame, immediateReturn bool) (ret object.Object)
- func (vm *VirtualMachine) SetGlobalEnv(env *object.Environment)
- func (vm *VirtualMachine) SetModuleProp(modulePath string, prop string, val object.Object)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GetModule ¶
GetModule returns a Module object is a module with the given name is registered, otherwise nil.
func InstanceOf ¶
func InstanceOf(class string, i *VMInstance) bool
func RegisterBuiltin ¶
func RegisterBuiltin(name string, fn object.BuiltinFunction)
RegisterBuiltin allows other packages to register functions for availability in user code
func RegisterModule ¶
func RegisterNative ¶
func RegisterNative(name string, fn object.BuiltinFunction)
func RegisterNativeMethod ¶
func RegisterNativeMethod(name string, fn BuiltinMethodFunction)
Types ¶
type BoundMethod ¶
type BoundMethod struct { Method object.ClassMethod Instance *VMInstance Parent *VMClass }
func (*BoundMethod) Dup ¶
func (b *BoundMethod) Dup() object.Object
func (*BoundMethod) Inspect ¶
func (b *BoundMethod) Inspect() string
func (*BoundMethod) Type ¶
func (b *BoundMethod) Type() object.ObjectType
type BuiltinMethod ¶
type BuiltinMethod struct { Fn BuiltinMethodFunction Name string NumOfParams int }
func MakeBuiltinMethod ¶
func MakeBuiltinMethod(fn BuiltinMethodFunction, NumOfParams int) *BuiltinMethod
func (*BuiltinMethod) ClassMethod ¶
func (b *BuiltinMethod) ClassMethod()
func (*BuiltinMethod) Dup ¶
func (b *BuiltinMethod) Dup() object.Object
func (*BuiltinMethod) Inspect ¶
func (b *BuiltinMethod) Inspect() string
func (*BuiltinMethod) Type ¶
func (b *BuiltinMethod) Type() object.ObjectType
type BuiltinMethodFunction ¶
type BuiltinMethodFunction func(i *VirtualMachine, self *VMInstance, env *object.Environment, args ...object.Object) object.Object
type ErrExitCode ¶
type ErrExitCode struct {
Code int
}
func (ErrExitCode) Error ¶
func (e ErrExitCode) Error() string
type Settings ¶
type Settings struct { Debug bool ReturnExceptions bool Stdin io.Reader Stdout io.Writer Stderr io.Writer }
func NewSettings ¶
func NewSettings() *Settings
type VMClass ¶
type VMClass struct { Name string Parent *VMClass Fields *compiler.CodeBlock Methods map[string]object.ClassMethod }
func (*VMClass) Type ¶
func (c *VMClass) Type() object.ObjectType
type VMFunction ¶
type VMFunction struct { Name string Parameters []string Native bool Body *compiler.CodeBlock Env *object.Environment Class *VMClass }
func (*VMFunction) ClassMethod ¶
func (f *VMFunction) ClassMethod()
func (*VMFunction) Dup ¶
func (f *VMFunction) Dup() object.Object
func (*VMFunction) Inspect ¶
func (f *VMFunction) Inspect() string
func (*VMFunction) Type ¶
func (f *VMFunction) Type() object.ObjectType
type VMInstance ¶
type VMInstance struct { Class *VMClass Fields *object.Environment }
func (*VMInstance) Dup ¶
func (i *VMInstance) Dup() object.Object
func (*VMInstance) GetBoundMethod ¶
func (i *VMInstance) GetBoundMethod(name string) *BoundMethod
func (*VMInstance) GetMethod ¶
func (i *VMInstance) GetMethod(name string) object.ClassMethod
func (*VMInstance) Inspect ¶
func (i *VMInstance) Inspect() string
func (*VMInstance) Type ¶
func (i *VMInstance) Type() object.ObjectType
type VirtualMachine ¶
type VirtualMachine struct { Settings *Settings // contains filtered or unexported fields }
func NewVM ¶
func NewVM(settings *Settings) *VirtualMachine
func (*VirtualMachine) CallFunction ¶
func (vm *VirtualMachine) CallFunction(argc uint16, fn object.Object, now bool, this *VMInstance, unwind bool)
func (*VirtualMachine) CurrentFrame ¶
func (vm *VirtualMachine) CurrentFrame() *Frame
func (*VirtualMachine) Eval ¶
func (vm *VirtualMachine) Eval(node ast.Node, env *object.Environment) object.Object
func (*VirtualMachine) Execute ¶
func (vm *VirtualMachine) Execute(code *compiler.CodeBlock, env *object.Environment) (object.Object, error)
func (*VirtualMachine) Exit ¶
func (vm *VirtualMachine) Exit(code int)
func (*VirtualMachine) GetCurrentScriptPath ¶
func (vm *VirtualMachine) GetCurrentScriptPath() string
func (*VirtualMachine) GetInstanceVar ¶
func (vm *VirtualMachine) GetInstanceVar(key string) interface{}
func (*VirtualMachine) GetOkInstanceVar ¶
func (vm *VirtualMachine) GetOkInstanceVar(key string) (interface{}, bool)
func (*VirtualMachine) GetStderr ¶
func (vm *VirtualMachine) GetStderr() io.Writer
func (*VirtualMachine) GetStdin ¶
func (vm *VirtualMachine) GetStdin() io.Reader
func (*VirtualMachine) GetStdout ¶
func (vm *VirtualMachine) GetStdout() io.Writer
func (*VirtualMachine) HasInstanceVar ¶
func (vm *VirtualMachine) HasInstanceVar(key string) bool
func (*VirtualMachine) MakeFrame ¶
func (vm *VirtualMachine) MakeFrame(code *compiler.CodeBlock, env *object.Environment) *Frame
func (*VirtualMachine) PopStack ¶
func (vm *VirtualMachine) PopStack() object.Object
func (*VirtualMachine) RemoveInstanceVar ¶
func (vm *VirtualMachine) RemoveInstanceVar(key string)
func (*VirtualMachine) RunFrame ¶
func (vm *VirtualMachine) RunFrame(f *Frame, immediateReturn bool) (ret object.Object)
func (*VirtualMachine) SetGlobalEnv ¶
func (vm *VirtualMachine) SetGlobalEnv(env *object.Environment)
func (*VirtualMachine) SetModuleProp ¶
func (vm *VirtualMachine) SetModuleProp(modulePath string, prop string, val object.Object)
Source Files ¶
Click to show internal directories.
Click to hide internal directories.