static Variable ExtractValue(ParsingScript script) { if (script.TryCurrent() == '{') { return(ExtractObject(script)); } if (script.TryCurrent() == '[') { return(ExtractArray(script)); } bool canBeNumeric = script.Current != '"'; var token = Utils.GetToken(script, SEP); if (canBeNumeric && Utils.CanConvertToDouble(token, out double num)) { return(new Variable(num)); } return(new Variable(token)); }