KumiScript/interpreter/expression/SymbolExpression.cs

35 lines
764 B
C#
Raw Normal View History

2024-01-26 05:37:51 +00:00
namespace KumiScript.Interpreter
{
public class SymbolExpression : Expression
{
readonly Symbol _value;
public SymbolExpression(Symbol s)
{
_value = s;
}
public override bool Equals(Expression expr)
{
SymbolExpression? sy = expr as SymbolExpression;
if (sy is null)
return false;
return _value.Equals(sy._value);
}
public override Expression Eval(Environment env)
{
return env.Lookup(_value);
}
public Symbol GetSymbol()
{
return _value;
}
public override string ToString()
{
return _value.ToString();
}
}
}