2024-01-26 05:37:51 +00:00
|
|
|
namespace KumiScript.Interpreter
|
|
|
|
{
|
2024-07-12 00:17:00 +00:00
|
|
|
public class Expression
|
2024-01-26 05:37:51 +00:00
|
|
|
{
|
2024-07-12 00:17:00 +00:00
|
|
|
public virtual Expression Eval(Environment env)
|
2024-01-26 05:37:51 +00:00
|
|
|
{
|
2024-07-12 00:17:00 +00:00
|
|
|
return this;
|
2024-01-26 05:37:51 +00:00
|
|
|
}
|
|
|
|
|
2024-07-12 00:17:00 +00:00
|
|
|
public virtual decimal GetValueAsFloat()
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual Expression Car()
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual Expression Cdr()
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual ProperListExpression Cons(Expression expr)
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual ProperListExpression AppendToList(Expression expr)
|
|
|
|
{
|
|
|
|
List<Expression> el = new List<Expression>(2)
|
|
|
|
{
|
|
|
|
this,
|
|
|
|
expr
|
|
|
|
};
|
|
|
|
return new ProperListExpression(el);
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual List<Expression> EvalMembers(Environment env)
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual List<Expression> GetMembers()
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual Symbol GetSymbol()
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual Expression Apply(Expression operand, Environment env)
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual bool IsPrimitive()
|
|
|
|
{
|
|
|
|
throw new InterpreterTypingException();
|
|
|
|
}
|
|
|
|
|
|
|
|
public virtual bool Equals (Expression expr)
|
|
|
|
{
|
|
|
|
return ReferenceEquals(this, expr);
|
|
|
|
}
|
2024-01-26 05:37:51 +00:00
|
|
|
}
|
|
|
|
}
|