KumiScript/interpreter/expression/NilExpression.cs

48 lines
1 KiB
C#

namespace KumiScript.Interpreter
{
public class NilExpression : Expression
{
private static NilExpression? _instance;
private NilExpression()
{
}
public static NilExpression GetInstance()
{
if (_instance is null)
_instance = new NilExpression();
return _instance;
}
public override Expression Car()
{
return this;
}
public override Expression Cdr()
{
return this;
}
public override ProperListExpression Cons(Expression expr)
{
return new ProperListExpression(new List<Expression> {expr});
}
public override List<Expression> EvalMembers(Environment env)
{
return new List<Expression>();
}
public override List<Expression> GetMembers()
{
return new List<Expression>();
}
public override string ToString()
{
return "null";
}
}
}