public static IArgument Single(CharSource source, ref char chr, Dictionary <string, IFunction> funcs) { switch (chr) { case '"': return(Literals.String(source, ref chr)); case '{': return(Collections.Dictionary(source, ref chr, funcs)); case '[': return(Collections.Array(source, ref chr, funcs)); case '(': return(Evaluatable.Function(source, ref chr, funcs)); case '<': return(Evaluatable.Executable(source, ref chr, funcs)); case '/': return(Literals.TypeName(source, ref chr)); case '!': return(new ResultArgument(source, ref chr)); default: return(Literals.Default(source, ref chr)); } }