interpreter

package
v0.1.3 Latest Latest
Warning

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

Go to latest
Published: Dec 9, 2021 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var Debugger = &debugger{}

Functions

func FindInstanceMethod added in v0.1.2

func FindInstanceMethod(object *ast.Object, methodName string, parameters []*ast.Object, allowedModifier int) (*ast.Object, *ast.Method, error)

func FindStaticMethod added in v0.1.2

func FindStaticMethod(classType *ast.ClassType, methodName string, parameters []*ast.Object, allowedModifier int) (*ast.ClassType, *ast.Method, error)

func Publish

func Publish(event string, ctx *Context, n ast.Node)

func Subscribe

func Subscribe(event string, subscriber Subscriber)

Types

type Context

type Context struct {
	Env         *Env
	StaticField *StaticFieldMap
	ClassTypes  *ast.ClassMap           // loaded User Class
	NameSpaces  *builtin.NameSpaceStore // NameSpaces and Related Classes

	CurrentMethod *ast.MethodDeclaration
	CurrentClass  *ast.ClassType
}

func NewContext

func NewContext() *Context

type Env

type Env struct {
	Data   *ast.ObjectMap
	Parent *Env
}

func NewEnv

func NewEnv(p *Env) *Env

func (*Env) Define added in v0.1.1

func (e *Env) Define(k string, n *ast.Object)

func (*Env) FindEnv added in v0.1.1

func (e *Env) FindEnv(k string) *Env

func (*Env) Get

func (e *Env) Get(k string) (*ast.Object, bool)

func (*Env) Update added in v0.1.1

func (e *Env) Update(k string, n *ast.Object)

type Interpreter

type Interpreter struct {
	Context *Context
	Extra   map[string]interface{}
}

func NewInterpreter

func NewInterpreter(classTypeMap *ast.ClassMap) *Interpreter

func NewInterpreterWithBuiltin added in v0.1.2

func NewInterpreterWithBuiltin(classTypes []*ast.ClassType) *Interpreter

func (*Interpreter) BindAndRun added in v0.1.3

func (i *Interpreter) BindAndRun(name, method string, params map[string][]string, state map[string]interface{}) (*ast.Object, *ast.Object, error)

@return controller object, pageref object, error

func (*Interpreter) Equals added in v0.1.2

func (v *Interpreter) Equals(o, other *ast.Object) bool

func (*Interpreter) LoadStaticField

func (v *Interpreter) LoadStaticField()

func (*Interpreter) NewEnv added in v0.1.1

func (v *Interpreter) NewEnv(f func() (interface{}, error)) (interface{}, error)

func (*Interpreter) VisitAnnotation

func (v *Interpreter) VisitAnnotation(n *ast.Annotation) (interface{}, error)

func (*Interpreter) VisitArrayAccess

func (v *Interpreter) VisitArrayAccess(n *ast.ArrayAccess) (interface{}, error)

func (*Interpreter) VisitArrayCreator

func (v *Interpreter) VisitArrayCreator(n *ast.ArrayCreator) (interface{}, error)

func (*Interpreter) VisitArrayInitializer

func (v *Interpreter) VisitArrayInitializer(n *ast.ArrayInitializer) (interface{}, error)

func (*Interpreter) VisitBinaryOperator

func (v *Interpreter) VisitBinaryOperator(n *ast.BinaryOperator) (interface{}, error)

func (*Interpreter) VisitBlock

func (v *Interpreter) VisitBlock(n *ast.Block) (interface{}, error)

func (*Interpreter) VisitBooleanLiteral

func (v *Interpreter) VisitBooleanLiteral(n *ast.BooleanLiteral) (interface{}, error)

func (*Interpreter) VisitBreak

func (v *Interpreter) VisitBreak(n *ast.Break) (interface{}, error)

func (*Interpreter) VisitCastExpression

func (v *Interpreter) VisitCastExpression(n *ast.CastExpression) (interface{}, error)

func (*Interpreter) VisitCatch

func (v *Interpreter) VisitCatch(n *ast.Catch) (interface{}, error)

func (*Interpreter) VisitClassDeclaration

func (v *Interpreter) VisitClassDeclaration(n *ast.ClassDeclaration) (interface{}, error)

func (*Interpreter) VisitConstructorDeclaration

func (v *Interpreter) VisitConstructorDeclaration(n *ast.ConstructorDeclaration) (interface{}, error)

func (*Interpreter) VisitContinue

func (v *Interpreter) VisitContinue(n *ast.Continue) (interface{}, error)

func (*Interpreter) VisitDml

func (v *Interpreter) VisitDml(n *ast.Dml) (interface{}, error)

func (*Interpreter) VisitDoubleLiteral

func (v *Interpreter) VisitDoubleLiteral(n *ast.DoubleLiteral) (interface{}, error)

func (*Interpreter) VisitEnhancedForControl

func (v *Interpreter) VisitEnhancedForControl(n *ast.EnhancedForControl) (interface{}, error)

func (*Interpreter) VisitFieldAccess

func (v *Interpreter) VisitFieldAccess(n *ast.FieldAccess) (interface{}, error)

func (*Interpreter) VisitFieldDeclaration

func (v *Interpreter) VisitFieldDeclaration(n *ast.FieldDeclaration) (interface{}, error)

func (*Interpreter) VisitFinally

func (v *Interpreter) VisitFinally(n *ast.Finally) (interface{}, error)

func (*Interpreter) VisitFor

func (v *Interpreter) VisitFor(n *ast.For) (interface{}, error)

func (*Interpreter) VisitForControl

func (v *Interpreter) VisitForControl(n *ast.ForControl) (interface{}, error)

func (*Interpreter) VisitGetterSetter

func (v *Interpreter) VisitGetterSetter(n *ast.GetterSetter) (interface{}, error)

func (*Interpreter) VisitIf

func (v *Interpreter) VisitIf(n *ast.If) (interface{}, error)

func (*Interpreter) VisitInstanceofOperator added in v0.1.3

func (v *Interpreter) VisitInstanceofOperator(n *ast.InstanceofOperator) (interface{}, error)

func (*Interpreter) VisitIntegerLiteral

func (v *Interpreter) VisitIntegerLiteral(n *ast.IntegerLiteral) (interface{}, error)

func (*Interpreter) VisitInterfaceDeclaration

func (v *Interpreter) VisitInterfaceDeclaration(n *ast.InterfaceDeclaration) (interface{}, error)

func (*Interpreter) VisitMapCreator

func (v *Interpreter) VisitMapCreator(n *ast.MapCreator) (interface{}, error)

func (*Interpreter) VisitMethodDeclaration

func (v *Interpreter) VisitMethodDeclaration(n *ast.MethodDeclaration) (interface{}, error)

func (*Interpreter) VisitMethodInvocation

func (v *Interpreter) VisitMethodInvocation(n *ast.MethodInvocation) (interface{}, error)

func (*Interpreter) VisitModifier

func (v *Interpreter) VisitModifier(n *ast.Modifier) (interface{}, error)

func (*Interpreter) VisitName

func (v *Interpreter) VisitName(n *ast.Name) (interface{}, error)

func (*Interpreter) VisitNew

func (v *Interpreter) VisitNew(n *ast.New) (interface{}, error)

func (*Interpreter) VisitNothingStatement

func (v *Interpreter) VisitNothingStatement(n *ast.NothingStatement) (interface{}, error)

func (*Interpreter) VisitNullLiteral

func (v *Interpreter) VisitNullLiteral(n *ast.NullLiteral) (interface{}, error)

func (*Interpreter) VisitParameter

func (v *Interpreter) VisitParameter(n *ast.Parameter) (interface{}, error)

func (*Interpreter) VisitPropertyDeclaration

func (v *Interpreter) VisitPropertyDeclaration(n *ast.PropertyDeclaration) (interface{}, error)

func (*Interpreter) VisitReturn

func (v *Interpreter) VisitReturn(n *ast.Return) (interface{}, error)

func (*Interpreter) VisitSetCreator

func (v *Interpreter) VisitSetCreator(n *ast.SetCreator) (interface{}, error)

func (*Interpreter) VisitSoql

func (v *Interpreter) VisitSoql(n *ast.Soql) (interface{}, error)

func (*Interpreter) VisitSoqlBindVariable

func (v *Interpreter) VisitSoqlBindVariable(n *ast.SoqlBindVariable) (interface{}, error)

func (*Interpreter) VisitSosl

func (v *Interpreter) VisitSosl(n *ast.Sosl) (interface{}, error)

func (*Interpreter) VisitStringLiteral

func (v *Interpreter) VisitStringLiteral(n *ast.StringLiteral) (interface{}, error)

func (*Interpreter) VisitSwitch

func (v *Interpreter) VisitSwitch(n *ast.Switch) (interface{}, error)

func (*Interpreter) VisitTernalyExpression

func (v *Interpreter) VisitTernalyExpression(n *ast.TernalyExpression) (interface{}, error)

func (*Interpreter) VisitThrow

func (v *Interpreter) VisitThrow(n *ast.Throw) (interface{}, error)

func (*Interpreter) VisitTrigger

func (v *Interpreter) VisitTrigger(n *ast.Trigger) (interface{}, error)

func (*Interpreter) VisitTriggerTiming

func (v *Interpreter) VisitTriggerTiming(n *ast.TriggerTiming) (interface{}, error)

func (*Interpreter) VisitTry

func (v *Interpreter) VisitTry(n *ast.Try) (interface{}, error)

func (*Interpreter) VisitType

func (v *Interpreter) VisitType(n *ast.TypeRef) (interface{}, error)

func (*Interpreter) VisitUnaryOperator

func (v *Interpreter) VisitUnaryOperator(n *ast.UnaryOperator) (interface{}, error)

func (*Interpreter) VisitVariableDeclaration

func (v *Interpreter) VisitVariableDeclaration(n *ast.VariableDeclaration) (interface{}, error)

func (*Interpreter) VisitVariableDeclarator

func (v *Interpreter) VisitVariableDeclarator(n *ast.VariableDeclarator) (interface{}, error)

func (*Interpreter) VisitWhen

func (v *Interpreter) VisitWhen(n *ast.When) (interface{}, error)

func (*Interpreter) VisitWhenType

func (v *Interpreter) VisitWhenType(n *ast.WhenType) (interface{}, error)

func (*Interpreter) VisitWhile

func (v *Interpreter) VisitWhile(n *ast.While) (interface{}, error)

type SoqlExecutor

type SoqlExecutor struct{}

func (*SoqlExecutor) Execute

func (e *SoqlExecutor) Execute(n *ast.Soql, visitor ast.Visitor) (*ast.Object, error)

type StaticFieldMap

type StaticFieldMap struct {
	Data map[string]map[string]*ast.ObjectMap
}

*

  • StaticFieldMap

func NewStaticFieldMap

func NewStaticFieldMap() *StaticFieldMap

func (*StaticFieldMap) Add

func (m *StaticFieldMap) Add(ns, k, f string, n *ast.Object)

func (*StaticFieldMap) Get

func (m *StaticFieldMap) Get(ns, k string) (*ast.ObjectMap, bool)

func (*StaticFieldMap) Set

func (m *StaticFieldMap) Set(ns, k string, n *ast.ObjectMap)

type Subscriber

type Subscriber func(ctx *Context, n ast.Node)

type TypeResolver

type TypeResolver struct {
	Context *Context
	// contains filtered or unexported fields
}

func NewTypeResolver added in v0.1.1

func NewTypeResolver(ctx *Context) *TypeResolver

func (*TypeResolver) ConvertType added in v0.1.1

func (r *TypeResolver) ConvertType(n *ast.TypeRef) (*ast.ClassType, error)

func (*TypeResolver) ResolveMethod

func (r *TypeResolver) ResolveMethod(names []string, parameters []*ast.Object) (interface{}, *ast.Method, error)

func (*TypeResolver) ResolveType

func (r *TypeResolver) ResolveType(names []string) (*ast.ClassType, error)

func (*TypeResolver) ResolveVariable

func (r *TypeResolver) ResolveVariable(names []string) (*ast.Object, error)

func (*TypeResolver) SearchConstructor added in v0.1.2

func (r *TypeResolver) SearchConstructor(receiverClass *ast.ClassType, parameters []*ast.Object) (*ast.ClassType, *ast.Method, error)

func (*TypeResolver) SearchMethod added in v0.1.1

func (r *TypeResolver) SearchMethod(receiverClass *ast.ClassType, methods []*ast.Method, parameters []*ast.Object) *ast.Method

func (*TypeResolver) SetVariable

func (r *TypeResolver) SetVariable(names []string, setValue *ast.Object) error

Jump to

Keyboard shortcuts

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