evaluator

package
v0.2.8 Latest Latest
Warning

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

Go to latest
Published: Mar 2, 2026 License: MIT Imports: 17 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultMaxCallDepth = 1000

DefaultMaxCallDepth is the default maximum call depth (1000)

Variables

View Source
var (
	NULL  = &object.Null{}
	TRUE  = &object.Boolean{Value: true}
	FALSE = &object.Boolean{Value: false}
)

Functions

func ApplyFunction

func ApplyFunction(ctx context.Context, fn object.Object, args []object.Object, keywords map[string]object.Object, env *object.Environment) object.Object

ApplyFunction calls a function object with arguments and keyword arguments. This is exported for use by other packages that need to call script functions directly.

func ContextWithCallDepth

func ContextWithCallDepth(ctx context.Context, maxDepth int) context.Context

ContextWithCallDepth creates a context with a call depth tracker

func ContextWithSourceFile

func ContextWithSourceFile(ctx context.Context, filename string) context.Context

ContextWithSourceFile creates a context with source file info for error reporting

func Eval

func Eval(node ast.Node, env *object.Environment) object.Object

Eval executes without context (backwards compatible)

func EvalWithContext

func EvalWithContext(ctx context.Context, node ast.Node, env *object.Environment) object.Object

EvalWithContext executes with context for timeout/cancellation

func GetEnvFromContext

func GetEnvFromContext(ctx context.Context) *object.Environment

GetEnvFromContext retrieves environment from context for external functions

func GetImportBuiltin

func GetImportBuiltin() *object.Builtin

func GetSourceFileFromContext

func GetSourceFileFromContext(ctx context.Context) string

GetSourceFileFromContext retrieves source file name from context

func SetCallDepthInContext

func SetCallDepthInContext(ctx context.Context, cd *CallDepth) context.Context

SetCallDepthInContext stores call depth tracker in context

func SetEnvInContext

func SetEnvInContext(ctx context.Context, env *object.Environment) context.Context

SetEnvInContext stores environment in context for builtin functions

func WithEvaluator

func WithEvaluator(ctx context.Context) context.Context

WithEvaluator adds evaluator to context

Types

type CallDepth

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

CallDepth tracks function call depth to prevent stack overflow

func GetCallDepthFromContext

func GetCallDepthFromContext(ctx context.Context) *CallDepth

GetCallDepthFromContext retrieves call depth tracker from context

func NewCallDepth

func NewCallDepth(maxDepth int) *CallDepth

NewCallDepth creates a new CallDepth tracker with the specified max depth

func (*CallDepth) Depth

func (cd *CallDepth) Depth() int

Depth returns current call depth

func (*CallDepth) Enter

func (cd *CallDepth) Enter() bool

Enter increments call depth and returns true if within limits

func (*CallDepth) Exit

func (cd *CallDepth) Exit()

Exit decrements call depth

Jump to

Keyboard shortcuts

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