Table of Contents

Class Interpreter

Namespace
StepLang.Interpreting
Assembly
StepLang.dll
public class Interpreter : IRootNodeVisitor, IStatementVisitor, IExpressionEvaluator, IImportNodeVisitor, IVariableDeclarationEvaluator
Inheritance
Interpreter
Implements
Inherited Members

Constructors

Interpreter(TextWriter?, TextWriter?, TextReader?, TextWriter?)

public Interpreter(TextWriter? stdOut = null, TextWriter? stdErr = null, TextReader? stdIn = null, TextWriter? debugOut = null)

Parameters

stdOut TextWriter
stdErr TextWriter
stdIn TextReader
debugOut TextWriter

Properties

CurrentScope

public Scope CurrentScope { get; }

Property Value

Scope

DebugOut

public TextWriter? DebugOut { get; }

Property Value

TextWriter

ExitCode

public int ExitCode { get; set; }

Property Value

int

Random

public Random Random { get; }

Property Value

Random

StdErr

public TextWriter? StdErr { get; }

Property Value

TextWriter

StdIn

public TextReader? StdIn { get; }

Property Value

TextReader

StdOut

public TextWriter? StdOut { get; }

Property Value

TextWriter

Methods

Evaluate(AddExpressionNode)

public ExpressionResult Evaluate(AddExpressionNode expressionNode)

Parameters

expressionNode AddExpressionNode

Returns

ExpressionResult

Evaluate(BitwiseAndExpressionNode)

public ExpressionResult Evaluate(BitwiseAndExpressionNode expressionNode)

Parameters

expressionNode BitwiseAndExpressionNode

Returns

ExpressionResult

Evaluate(BitwiseOrExpressionNode)

public ExpressionResult Evaluate(BitwiseOrExpressionNode expressionNode)

Parameters

expressionNode BitwiseOrExpressionNode

Returns

ExpressionResult

Evaluate(BitwiseRotateLeftExpressionNode)

public ExpressionResult Evaluate(BitwiseRotateLeftExpressionNode expressionNode)

Parameters

expressionNode BitwiseRotateLeftExpressionNode

Returns

ExpressionResult

Evaluate(BitwiseRotateRightExpressionNode)

public ExpressionResult Evaluate(BitwiseRotateRightExpressionNode expressionNode)

Parameters

expressionNode BitwiseRotateRightExpressionNode

Returns

ExpressionResult

Evaluate(BitwiseShiftLeftExpressionNode)

public ExpressionResult Evaluate(BitwiseShiftLeftExpressionNode expressionNode)

Parameters

expressionNode BitwiseShiftLeftExpressionNode

Returns

ExpressionResult

Evaluate(BitwiseShiftRightExpressionNode)

public ExpressionResult Evaluate(BitwiseShiftRightExpressionNode expressionNode)

Parameters

expressionNode BitwiseShiftRightExpressionNode

Returns

ExpressionResult

Evaluate(BitwiseXorExpressionNode)

public ExpressionResult Evaluate(BitwiseXorExpressionNode expressionNode)

Parameters

expressionNode BitwiseXorExpressionNode

Returns

ExpressionResult

Evaluate(CallExpressionNode)

public ExpressionResult Evaluate(CallExpressionNode expressionNode)

Parameters

expressionNode CallExpressionNode

Returns

ExpressionResult

Evaluate(CoalesceExpressionNode)

public ExpressionResult Evaluate(CoalesceExpressionNode expressionNode)

Parameters

expressionNode CoalesceExpressionNode

Returns

ExpressionResult

Evaluate(DivideExpressionNode)

public ExpressionResult Evaluate(DivideExpressionNode expressionNode)

Parameters

expressionNode DivideExpressionNode

Returns

ExpressionResult

Evaluate(EqualsExpressionNode)

public ExpressionResult Evaluate(EqualsExpressionNode expressionNode)

Parameters

expressionNode EqualsExpressionNode

Returns

ExpressionResult

Evaluate(FunctionDefinitionCallExpressionNode)

public ExpressionResult Evaluate(FunctionDefinitionCallExpressionNode expressionNode)

Parameters

expressionNode FunctionDefinitionCallExpressionNode

Returns

ExpressionResult

Evaluate(FunctionDefinitionExpressionNode)

public ExpressionResult Evaluate(FunctionDefinitionExpressionNode expressionNode)

Parameters

expressionNode FunctionDefinitionExpressionNode

Returns

ExpressionResult

Evaluate(GreaterThanExpressionNode)

public ExpressionResult Evaluate(GreaterThanExpressionNode expressionNode)

Parameters

expressionNode GreaterThanExpressionNode

Returns

ExpressionResult

Evaluate(GreaterThanOrEqualExpressionNode)

public ExpressionResult Evaluate(GreaterThanOrEqualExpressionNode expressionNode)

Parameters

expressionNode GreaterThanOrEqualExpressionNode

Returns

ExpressionResult

Evaluate(IdentifierExpressionNode)

public ExpressionResult Evaluate(IdentifierExpressionNode expressionNode)

Parameters

expressionNode IdentifierExpressionNode

Returns

ExpressionResult

Evaluate(IndexAccessExpressionNode)

public ExpressionResult Evaluate(IndexAccessExpressionNode expressionNode)

Parameters

expressionNode IndexAccessExpressionNode

Returns

ExpressionResult

Evaluate(LessThanExpressionNode)

public ExpressionResult Evaluate(LessThanExpressionNode expressionNode)

Parameters

expressionNode LessThanExpressionNode

Returns

ExpressionResult

Evaluate(LessThanOrEqualExpressionNode)

public ExpressionResult Evaluate(LessThanOrEqualExpressionNode expressionNode)

Parameters

expressionNode LessThanOrEqualExpressionNode

Returns

ExpressionResult

Evaluate(ListExpressionNode)

public ExpressionResult Evaluate(ListExpressionNode expressionNode)

Parameters

expressionNode ListExpressionNode

Returns

ExpressionResult

Evaluate(LiteralExpressionNode)

public ExpressionResult Evaluate(LiteralExpressionNode expressionNode)

Parameters

expressionNode LiteralExpressionNode

Returns

ExpressionResult

Evaluate(LogicalAndExpressionNode)

public ExpressionResult Evaluate(LogicalAndExpressionNode expressionNode)

Parameters

expressionNode LogicalAndExpressionNode

Returns

ExpressionResult

Evaluate(LogicalOrExpressionNode)

public ExpressionResult Evaluate(LogicalOrExpressionNode expressionNode)

Parameters

expressionNode LogicalOrExpressionNode

Returns

ExpressionResult

Evaluate(MapExpressionNode)

public ExpressionResult Evaluate(MapExpressionNode expressionNode)

Parameters

expressionNode MapExpressionNode

Returns

ExpressionResult

Evaluate(ModuloExpressionNode)

public ExpressionResult Evaluate(ModuloExpressionNode expressionNode)

Parameters

expressionNode ModuloExpressionNode

Returns

ExpressionResult

Evaluate(MultiplyExpressionNode)

public ExpressionResult Evaluate(MultiplyExpressionNode expressionNode)

Parameters

expressionNode MultiplyExpressionNode

Returns

ExpressionResult

Evaluate(NativeFunctionDefinitionExpressionNode)

public ExpressionResult Evaluate(NativeFunctionDefinitionExpressionNode expressionNode)

Parameters

expressionNode NativeFunctionDefinitionExpressionNode

Returns

ExpressionResult

Evaluate(NegateExpressionNode)

public ExpressionResult Evaluate(NegateExpressionNode expressionNode)

Parameters

expressionNode NegateExpressionNode

Returns

ExpressionResult

Evaluate(NotEqualsExpressionNode)

public ExpressionResult Evaluate(NotEqualsExpressionNode expressionNode)

Parameters

expressionNode NotEqualsExpressionNode

Returns

ExpressionResult

Evaluate(NotExpressionNode)

public ExpressionResult Evaluate(NotExpressionNode expressionNode)

Parameters

expressionNode NotExpressionNode

Returns

ExpressionResult

Evaluate(PowerExpressionNode)

public ExpressionResult Evaluate(PowerExpressionNode expressionNode)

Parameters

expressionNode PowerExpressionNode

Returns

ExpressionResult

Evaluate(SubtractExpressionNode)

public ExpressionResult Evaluate(SubtractExpressionNode expressionNode)

Parameters

expressionNode SubtractExpressionNode

Returns

ExpressionResult

Execute(BreakStatementNode)

public void Execute(BreakStatementNode statementNode)

Parameters

statementNode BreakStatementNode

Execute(CallStatementNode)

public void Execute(CallStatementNode statementNode)

Parameters

statementNode CallStatementNode

Execute(CodeBlockStatementNode)

public void Execute(CodeBlockStatementNode statementNode)

Parameters

statementNode CodeBlockStatementNode

Execute(ContinueStatementNode)

public void Execute(ContinueStatementNode statementNode)

Parameters

statementNode ContinueStatementNode

Execute(DecrementStatementNode)

public void Execute(DecrementStatementNode statementNode)

Parameters

statementNode DecrementStatementNode

Execute(DiscardStatementNode)

public void Execute(DiscardStatementNode discardStatementNode)

Parameters

discardStatementNode DiscardStatementNode

Execute(ForeachDeclareKeyDeclareValueStatementNode)

public void Execute(ForeachDeclareKeyDeclareValueStatementNode statementNode)

Parameters

statementNode ForeachDeclareKeyDeclareValueStatementNode

Execute(ForeachDeclareKeyValueStatementNode)

public void Execute(ForeachDeclareKeyValueStatementNode statementNode)

Parameters

statementNode ForeachDeclareKeyValueStatementNode

Execute(ForeachDeclareValueStatementNode)

public void Execute(ForeachDeclareValueStatementNode statementNode)

Parameters

statementNode ForeachDeclareValueStatementNode

Execute(ForeachKeyDeclareValueStatementNode)

public void Execute(ForeachKeyDeclareValueStatementNode statementNode)

Parameters

statementNode ForeachKeyDeclareValueStatementNode

Execute(ForeachKeyValueStatementNode)

public void Execute(ForeachKeyValueStatementNode statementNode)

Parameters

statementNode ForeachKeyValueStatementNode

Execute(ForeachValueStatementNode)

public void Execute(ForeachValueStatementNode statementNode)

Parameters

statementNode ForeachValueStatementNode

Execute(IdentifierIndexAssignmentNode)

public void Execute(IdentifierIndexAssignmentNode statementNode)

Parameters

statementNode IdentifierIndexAssignmentNode

Execute(IfElseIfStatementNode)

public void Execute(IfElseIfStatementNode statementNode)

Parameters

statementNode IfElseIfStatementNode

Execute(IfElseStatementNode)

public void Execute(IfElseStatementNode statementNode)

Parameters

statementNode IfElseStatementNode

Execute(IfStatementNode)

public void Execute(IfStatementNode statementNode)

Parameters

statementNode IfStatementNode

Execute(IncrementStatementNode)

public void Execute(IncrementStatementNode statementNode)

Parameters

statementNode IncrementStatementNode

Execute(NullableVariableDeclarationNode)

public Variable Execute(NullableVariableDeclarationNode statementNode)

Parameters

statementNode NullableVariableDeclarationNode

Returns

Variable

Execute(NullableVariableInitializationNode)

public Variable Execute(NullableVariableInitializationNode statementNode)

Parameters

statementNode NullableVariableInitializationNode

Returns

Variable

Execute(ReturnExpressionStatementNode)

public void Execute(ReturnExpressionStatementNode statementNode)

Parameters

statementNode ReturnExpressionStatementNode

Execute(ReturnStatementNode)

public void Execute(ReturnStatementNode statementNode)

Parameters

statementNode ReturnStatementNode

Execute(StatementNode)

public void Execute(StatementNode statement)

Parameters

statement StatementNode

Execute(VariableAssignmentNode)

public void Execute(VariableAssignmentNode statementNode)

Parameters

statementNode VariableAssignmentNode

Execute(VariableDeclarationNode)

public Variable Execute(VariableDeclarationNode statementNode)

Parameters

statementNode VariableDeclarationNode

Returns

Variable

Execute(VariableDeclarationStatementNode)

public void Execute(VariableDeclarationStatementNode statementNode)

Parameters

statementNode VariableDeclarationStatementNode

Execute(VariableInitializationNode)

public Variable Execute(VariableInitializationNode statementNode)

Parameters

statementNode VariableInitializationNode

Returns

Variable

Execute(WhileStatementNode)

public void Execute(WhileStatementNode statementNode)

Parameters

statementNode WhileStatementNode

Execute(IEnumerable<StatementNode>)

public void Execute(IEnumerable<StatementNode> statements)

Parameters

statements IEnumerable<StatementNode>

PopScope()

public Scope PopScope()

Returns

Scope

PushScope(Scope?)

public Scope PushScope(Scope? parent = null)

Parameters

parent Scope

Returns

Scope

Run(RootNode)

public void Run(RootNode node)

Parameters

node RootNode

SetRandomSeed(int)

public void SetRandomSeed(int value)

Parameters

value int

Visit(ImportNode)

public void Visit(ImportNode importNode)

Parameters

importNode ImportNode