12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- using System.Collections.Generic;
- using NTERA.Engine.Compiler;
- namespace NTERA.Engine.Runtime
- {
- public class StackFrame
- {
- public Dictionary<string, Variable> Variables { get; set; }
- public List<Parameter> Parameters { get; set; }
- public FunctionDefinition SelfDefinition { get; set; }
- }
- public enum ExecutionResultType
- {
- None,
- FunctionReturn
- }
- public class ExecutionResult
- {
- public static ExecutionResult None { get; } = new ExecutionResult(ExecutionResultType.None);
- public ExecutionResultType Type { get; }
- public Value? Result { get; }
- public ExecutionResult(ExecutionResultType type, Value? value = null)
- {
- Type = type;
- Result = value;
- }
- }
- public class Parameter
- {
- public Value Value { get; }
- public Variable BackingVariable { get; }
- public int[] BackingVariableIndex { get; }
- public Parameter(Value value, Variable backingVariable = null, int[] variableIndex = null)
- {
- Value = value;
- BackingVariable = backingVariable;
- BackingVariableIndex = variableIndex ?? new[] { 0 };
- }
- public static implicit operator Value(Parameter parameter)
- {
- return parameter.Value;
- }
- }
- }
|