diff options
author | 2013-04-28 13:13:25 -0600 | |
---|---|---|
committer | 2013-04-28 13:13:25 -0600 | |
commit | 10c9d0abf0e8009277fb2006cffb76b8a26865c7 (patch) | |
tree | 73dd16206a521984a5a26b479038a4d7300070c9 /src/core/basetypes/MCJSONParser.h | |
parent | 6216eee4d6c6514c2b1e324d1a999b0d7018ab7a (diff) | |
parent | 9a5c778214090b9c0fa58d65521c35b01cbcd663 (diff) |
Merge remote-tracking branch 'upstream/master' into Providers-API
Merge upstream/master
Diffstat (limited to 'src/core/basetypes/MCJSONParser.h')
-rw-r--r-- | src/core/basetypes/MCJSONParser.h | 66 |
1 files changed, 66 insertions, 0 deletions
diff --git a/src/core/basetypes/MCJSONParser.h b/src/core/basetypes/MCJSONParser.h new file mode 100644 index 00000000..f27e924e --- /dev/null +++ b/src/core/basetypes/MCJSONParser.h @@ -0,0 +1,66 @@ +// +// JSONParser.h +// mailcore2 +// +// Created by DINH Viêt Hoà on 4/17/13. +// Copyright (c) 2013 MailCore. All rights reserved. +// + +#ifndef __MAILCORE_MCJSONPARSER_H_ +#define __MAILCORE_MCJSONPARSER_H_ + +#include <MailCore/MCObject.h> +#include <MailCore/MCICUTypes.h> + +namespace mailcore { + + class Data; + class String; + + class JSONParser : public Object { + + public: + JSONParser(); + virtual ~JSONParser(); + + virtual String * content(); + virtual void setContent(String * content); + + virtual unsigned int position(); + virtual void setPosition(unsigned int position); + + virtual Object * result(); + + virtual bool parse(); + + virtual bool isEndOfExpression(); + + static Object * objectFromData(Data * data); + static Object * objectFromString(String * str); + + static Data * dataFromObject(Object * object); + static String * stringFromObject(Object * object); + + private: + Object * mResult; + unsigned int mPosition; + String * mContent; + void init(); + + void skipBlank(); + unsigned int skipBlank(unsigned int position); + bool parseDictionary(); + bool scanCharacter(UChar ch, unsigned int position); + bool scanKeyword(String * str, unsigned int position); + bool parseArray(); + bool parseString(); + bool parseBoolean(); + bool parseNull(); + bool parseFloat(); + static String * JSStringFromString(String * str); + static void appendStringFromObject(Object * object, String * string); + }; + +} + +#endif
\ No newline at end of file |