KumiScript/interpreter/expression/SymbolExpression.cs

39 lines
826 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 Expression Eval(Environment env)
{
return env.Lookup(_value);
}
public override Symbol GetSymbol()
2024-01-26 05:37:51 +00:00
{
return _value;
}
public override string ToString()
{
return _value.ToString();
}
public override bool Equals(Expression expr)
{
try
{
Symbol s = expr.GetSymbol();
return s != _value;
}
catch (InterpreterTypingException)
{
return false;
}
}
2024-01-26 05:37:51 +00:00
}
}