Documentation ¶
Index ¶
- func Evaluate(program binder.BoundProgram)
- type Evaluator
- func (evl *Evaluator) Assign(sym symbols.VariableSymbol, value interface{})
- func (evl *Evaluator) EvaluateAssignmentExpression(expr boundnodes.BoundAssignmentExpressionNode) interface{}
- func (evl *Evaluator) EvaluateBinaryExpression(expr boundnodes.BoundBinaryExpressionNode) interface{}
- func (evl *Evaluator) EvaluateCallExpression(expr boundnodes.BoundCallExpressionNode) interface{}
- func (evl *Evaluator) EvaluateConversionExpression(expr boundnodes.BoundConversionExpressionNode) interface{}
- func (evl *Evaluator) EvaluateExpression(expr boundnodes.BoundExpressionNode) interface{}
- func (evl *Evaluator) EvaluateExpressionStatement(stmt boundnodes.BoundExpressionStatementNode)
- func (evl *Evaluator) EvaluateLiteralExpression(expr boundnodes.BoundLiteralExpressionNode) interface{}
- func (evl *Evaluator) EvaluateStatement(body boundnodes.BoundBlockStatementNode) interface{}
- func (evl *Evaluator) EvaluateTypeCallExpression(expr boundnodes.BoundTypeCallExpressionNode) interface{}
- func (evl *Evaluator) EvaluateUnaryExpression(expr boundnodes.BoundUnaryExpressionNode) interface{}
- func (evl *Evaluator) EvaluateVariableDeclaration(stmt boundnodes.BoundVariableDeclarationStatementNode)
- func (evl *Evaluator) EvaluateVariableExpression(expr boundnodes.BoundVariableExpressionNode) interface{}
- func (evl *Evaluator) GetLocal(name string) interface{}
- func (evl *Evaluator) GetLocals() map[string]interface{}
- func (evl *Evaluator) PopLocals()
- func (evl *Evaluator) PushLocals()
- func (evl *Evaluator) PushTheseLocals(locals map[string]interface{})
- func (evl *Evaluator) Read(sym symbols.VariableSymbol) interface{}
- func (evl *Evaluator) SetLocal(fingerprint string, value interface{})
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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) PushTheseLocals ¶
func (*Evaluator) Read ¶
func (evl *Evaluator) Read(sym symbols.VariableSymbol) interface{}
Click to show internal directories.
Click to hide internal directories.