KumiScript/interpreter/expression/SymbolExpression.cs
2024-01-25 23:37:51 -06:00

35 lines
764 B
C#

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