spec

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 1, 2023 License: GPL-2.0, MIT Imports: 2 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ChanIn      = dummyChanIn
	ChanOut     = dummyChanOut
	MakeChan    = dummyMakeChan
	GetEx       = dummy2
	SetIndex    = dummySetIndex
	MapInit     = dummyN
	MapFrom     = dummyN
	Map         = dummy2
	Slice       = dummy1
	SliceFrom   = dummyN
	SliceFromTy = dummyN
	StructInit  = dummyN
	SubSlice    = dummy3
	ChanOf      = dummy1
	Xor         = dummy2
	Lshr        = dummy2
	Rshr        = dummy2
	BitAnd      = dummy2
	BitOr       = dummy2
	AndNot      = dummy2
	EQ          = dummy2
	GetVar      = dummy2
	Get         = dummy2
	Add         = dummy2
	Sub         = dummy2
	Mul         = dummy2
	Quo         = dummy2
	Mod         = dummy2
	Inc         = dummy1
	Dec         = dummy1
)
View Source
var (
	// DumpStack indicates to dump stack when error.
	DumpStack = false

	// AutoCall is reserved for internal use.
	AutoCall = make(map[reflect.Type]bool)

	// DontTyNormalize is reserved for internal use.
	DontTyNormalize = make(map[reflect.Type]bool)
)
View Source
var Fntable = map[string]interface{}{
	"$neg":  dummy1,
	"$elem": dummy1,
	"$mul":  dummy2,
	"$quo":  dummy2,
	"$mod":  dummy2,
	"$add":  dummy2,
	"$sub":  dummy2,

	"$xor":    dummy2,
	"$lshr":   dummy2,
	"$rshr":   dummy2,
	"$bitand": dummy2,
	"$bitor":  dummy2,
	"$bitnot": dummy1,
	"$andnot": dummy2,

	"$lt":  dummy2,
	"$gt":  dummy2,
	"$le":  dummy2,
	"$ge":  dummy2,
	"$eq":  dummy2,
	"$ne":  dummy2,
	"$and": dummy2,
	"$or":  dummy2,
	"$not": dummy1,
}

Fntable is function table required by tpl.Interpreter engine.

View Source
var SafeMode bool

SafeMode is the init mode of qlang.

View Source
var (
	// Undefined is `undefined` in qlang.
	Undefined interface{} = undefinedType(0)
)

Functions

func AutoConvert

func AutoConvert(v reflect.Value, t reflect.Type) reflect.Value

AutoConvert converts a value to specified type automatically.

func GoModuleList

func GoModuleList() []string

GoModuleList returns qlang modules implemented by Go.

func GoModuleName

func GoModuleName(table map[string]interface{}) (name string, ok bool)

GoModuleName returns name of a qlang module.

func Import

func Import(mod string, table map[string]interface{})

Import imports a qlang module implemented by Go.

func SetAutoCall

func SetAutoCall(t reflect.Type)

SetAutoCall is reserved for internal use.

func SetDontTyNormalize

func SetDontTyNormalize(t reflect.Type)

SetDontTyNormalize is reserved for internal use.

func SetDumpStack

func SetDumpStack(dump bool)

SetDumpStack set to dump stack or not.

Types

type Chan

type Chan struct {
	Data reflect.Value
}

A Chan represents chan class in qlang.

type DataIndex

type DataIndex struct {
	Data  interface{}
	Index interface{}
}

A DataIndex represents a compound data and its index. such as map[index], slice[index], object.member.

type GoTyper

type GoTyper interface {
	GoType() reflect.Type
}

GoTyper is required by `qlang type` spec.

type Module

type Module struct {
	Exports map[string]interface{}
}

A Module represents a qlang module to be imported.

func (Module) Disable

func (p Module) Disable(fnNames ...string)

Disable disables some export names.

type Type

type Type struct {
	// contains filtered or unexported fields
}

A Type represents a qlang builtin type.

func NewType

func NewType(t reflect.Type) *Type

NewType returns a qlang builtin type object.

func StructOf

func StructOf(ptr interface{}) *Type

StructOf returns a qlang builtin type object.

func TyMapOf

func TyMapOf(key, elem reflect.Type) *Type

TyMapOf represents the `map[key]elem` type.

func TyPtrTo

func TyPtrTo(elem reflect.Type) *Type

TyPtrTo represents the `*T` type.

func TySliceOf

func TySliceOf(elem reflect.Type) *Type

TySliceOf represents the `[]T` type.

func (*Type) Call

func (p *Type) Call(a interface{}) interface{}

Call returns `T(a)`.

func (*Type) GoType

func (p *Type) GoType() reflect.Type

GoType returns the underlying go type. required by `qlang type` spec.

func (*Type) NewInstance

func (p *Type) NewInstance(args ...interface{}) interface{}

NewInstance creates a new instance of a qlang type. required by `qlang type` spec.

func (*Type) String

func (p *Type) String() string

type TypeEx

type TypeEx struct {
	Call interface{}
	// contains filtered or unexported fields
}

A TypeEx represents a qlang builtin type with a cast function.

func NewTypeEx

func NewTypeEx(t reflect.Type, cast interface{}) *TypeEx

NewTypeEx returns a qlang builtin type object with a cast function.

func StructOfEx

func StructOfEx(ptr interface{}, cast interface{}) *TypeEx

StructOfEx returns a qlang builtin type object with a cast function.

func (*TypeEx) GoType

func (p *TypeEx) GoType() reflect.Type

GoType returns the underlying go type. required by `qlang type` spec.

func (*TypeEx) NewInstance

func (p *TypeEx) NewInstance(args ...interface{}) interface{}

NewInstance creates a new instance of a qlang type. required by `qlang type` spec.

func (*TypeEx) String

func (p *TypeEx) String() string

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL