static object Atomize(string token)
{
if (token.StartsWith("\""))
{
return(token);
}
if (token == "true")
{
return(true);
}
if (token == "false")
{
return(false);
}
if (token == "\n")
{
return(EOL);
}
if (token == "{")
{
return(OPEN);
}
if (token == "}")
{
return(CLOSE);
}
float value;
if (float.TryParse(token, out value))
{
return(value);
}
if (token.Contains("."))
{
return(new ComponentMethodLookup(token.Split('.')));
}
var typeName = GuessTypeName(token);
try {
var type = System.Type.GetType("BAD." + typeName, true, true);
return(System.Activator.CreateInstance(type));
} catch (System.TypeLoadException) {
DebugLog("Could not load type: " + typeName + ". Assuming symbol.");
}
return(Symbol.Get(token));
}