string GetArgumentConstant(int value, bool quotes = false)
{
if (value >= Function.Constants.Count)
return "K(Invalid index " + value + ")";
object constant = Function.Constants[value];
if (constant == null)
return "nil";
if (constant is string) {
foreach (char ch in (string)constant) {
if (!char.IsLetterOrDigit(ch) && ch != '_')
quotes = true;
}
if ((string)constant == "nil")
quotes = true;
return quotes ? "\"" + constant + "\"" : constant.ToString();
}
if (constant is double)
return constant.ToString();
return "K(" + constant + ")";
}