CompiledVariable
using CLanguage.Types;
using System;
using System.Runtime.CompilerServices;
namespace CLanguage.Interpreter
{
[System.Runtime.CompilerServices.NullableContext(1)]
[System.Runtime.CompilerServices.Nullable(0)]
public class CompiledVariable
{
public string Name { get; }
public CType VariableType { get; }
public int StackOffset { get; set; }
[System.Runtime.CompilerServices.Nullable(2)]
[field: System.Runtime.CompilerServices.Nullable(2)]
public Value[] InitialValue {
[System.Runtime.CompilerServices.NullableContext(2)]
get;
[System.Runtime.CompilerServices.NullableContext(2)]
set;
}
public CompiledVariable(string name, int offset, CType type)
{
if (name == null)
throw new ArgumentNullException("name");
Name = name;
StackOffset = offset;
if (type == null)
throw new ArgumentNullException("type");
VariableType = type;
}
public override string ToString()
{
return $"{Name}""{VariableType}";
}
}
}