Documentation
¶
Overview ¶
Package evaluator defines interfaces for the interpreter to use to evaluate GX code.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Context ¶
type Context interface {
elements.FileContext
// Evaluation returns the context in which the evaluation is done.
Evaluation() EvaluationContext
// Sub returns a new context with additional variables being defined.
Sub(map[string]elements.Element) (Context, error)
// EvalFunctionToElement evaluates a function literal into an interpreter element.
EvalFunctionToElement(eval Evaluator, fn ir.Func, args []elements.Element) ([]elements.Element, error)
}
Context in which an operator is being executed.
type EvaluationContext ¶
type EvaluationContext interface {
// NewFileContext returns a context for a given file.
NewFileContext(*ir.File) (Context, error)
// Evaluator returns the evaluator used by the interpreter.
Evaluator() Evaluator
}
EvaluationContext is the global state in which an evaluator runs.
type Evaluator ¶
type Evaluator interface {
// NewFunc creates a new function given its definition and a receiver.
NewFunc(fn ir.Func, recv *elements.Receiver) elements.Func
// NewSub returns a new evaluator given a new array operator implementations.
NewSub(elements.ArrayOps) Evaluator
// Importer returns an importer to import package.
Importer() Importer
// ArrayOps returns the operator implementations for arrays.
ArrayOps() elements.ArrayOps
// Processor returns the used by the array evaluator.
Processor() *processor.Processor
// ElementFromAtom returns an element from an atomic GX value.
ElementFromAtom(src elements.ExprAt, val values.Array) (elements.NumericalElement, error)
// CallFuncLit calls a function literal.
CallFuncLit(ctx Context, ref *ir.FuncLit, args []elements.Element) ([]elements.Element, error)
// Trace register a call to the trace builtin function.
Trace(call elements.CallAt, fn elements.Func, irFunc *ir.FuncBuiltin, args []elements.Element, fc *elements.InputValues) error
}
Evaluator implements GX operators.
Click to show internal directories.
Click to hide internal directories.