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()
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