private Expression CompilePredefinedConstantExpression() { PushPosition(); if (!IsWord) { ThrowException("Expect word."); } string name = GetWord(); Move(); object value = MathyConstants.GetValue(name); if (value == null) { ThrowException(string.Format("Undefined constant {0}", name)); } Expression expression = new PredefinedConstantExpression("#" + name, value, PeekPos(), Pos); PopPosition(); return(expression); }
private object EvalutePredefinedConstantExpression(PredefinedConstantExpression e, VariableContext context) { return(e.Value); }
private void CheckPredefinedConstantExpression(PredefinedConstantExpression e, TypeCheckingContext context) { e.Type = e.Value.GetType(); }