evaluator

package
v0.0.0-...-169fbab Latest Latest
Warning

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

Go to latest
Published: Aug 27, 2023 License: GPL-3.0 Imports: 13 Imported by: 0

README

ReCT Evaluator

lets get this road on the show
uh wait no uh hm
hm

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Evaluate

func Evaluate(program binder.BoundProgram)

evaluate!

Types

type Evaluator

type Evaluator struct {
	Program   binder.BoundProgram
	Globals   map[string]interface{}
	Functions map[string]binder.BoundFunction
	Locals    []map[string]interface{}
}

func (*Evaluator) Assign

func (evl *Evaluator) Assign(sym symbols.VariableSymbol, value interface{})

variable helpers

func (*Evaluator) EvaluateAssignmentExpression

func (evl *Evaluator) EvaluateAssignmentExpression(expr boundnodes.BoundAssignmentExpressionNode) interface{}

func (*Evaluator) EvaluateBinaryExpression

func (evl *Evaluator) EvaluateBinaryExpression(expr boundnodes.BoundBinaryExpressionNode) interface{}

func (*Evaluator) EvaluateCallExpression

func (evl *Evaluator) EvaluateCallExpression(expr boundnodes.BoundCallExpressionNode) interface{}

func (*Evaluator) EvaluateConversionExpression

func (evl *Evaluator) EvaluateConversionExpression(expr boundnodes.BoundConversionExpressionNode) interface{}

func (*Evaluator) EvaluateExpression

func (evl *Evaluator) EvaluateExpression(expr boundnodes.BoundExpressionNode) interface{}

all them expressionz

func (*Evaluator) EvaluateExpressionStatement

func (evl *Evaluator) EvaluateExpressionStatement(stmt boundnodes.BoundExpressionStatementNode)

func (*Evaluator) EvaluateLiteralExpression

func (evl *Evaluator) EvaluateLiteralExpression(expr boundnodes.BoundLiteralExpressionNode) interface{}

func (*Evaluator) EvaluateStatement

func (evl *Evaluator) EvaluateStatement(body boundnodes.BoundBlockStatementNode) interface{}

func (*Evaluator) EvaluateTypeCallExpression

func (evl *Evaluator) EvaluateTypeCallExpression(expr boundnodes.BoundTypeCallExpressionNode) interface{}

func (*Evaluator) EvaluateUnaryExpression

func (evl *Evaluator) EvaluateUnaryExpression(expr boundnodes.BoundUnaryExpressionNode) interface{}

func (*Evaluator) EvaluateVariableDeclaration

func (evl *Evaluator) EvaluateVariableDeclaration(stmt boundnodes.BoundVariableDeclarationStatementNode)

func (*Evaluator) EvaluateVariableExpression

func (evl *Evaluator) EvaluateVariableExpression(expr boundnodes.BoundVariableExpressionNode) interface{}

func (*Evaluator) GetLocal

func (evl *Evaluator) GetLocal(name string) interface{}

func (*Evaluator) GetLocals

func (evl *Evaluator) GetLocals() map[string]interface{}

func (*Evaluator) PopLocals

func (evl *Evaluator) PopLocals()

func (*Evaluator) PushLocals

func (evl *Evaluator) PushLocals()

locals stack helpers

func (*Evaluator) PushTheseLocals

func (evl *Evaluator) PushTheseLocals(locals map[string]interface{})

func (*Evaluator) Read

func (evl *Evaluator) Read(sym symbols.VariableSymbol) interface{}

func (*Evaluator) SetLocal

func (evl *Evaluator) SetLocal(fingerprint string, value interface{})

Jump to

Keyboard shortcuts

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