JSONPreparse.h 1.2 KB

12345678910111213141516171819202122232425262728
  1. #ifndef LIBJSON_GUARD_PREPARSE_H
  2. #define LIBJSON_GUARD_PREPARSE_H
  3. #include "JSONDebug.h"
  4. #include "JSONNode.h"
  5. #if (defined(JSON_PREPARSE) && defined(JSON_READ_PRIORITY))
  6. #ifdef JSON_COMMENTS
  7. #define COMMENT_PARAM(name) ,const json_string & name
  8. #else
  9. #define COMMENT_PARAM(name)
  10. #endif
  11. class JSONPreparse {
  12. public:
  13. static JSONNode isValidNumber(json_string::const_iterator & ptr, json_string::const_iterator & end) json_read_priority;
  14. static JSONNode isValidMember(json_string::const_iterator & ptr, json_string::const_iterator & end) json_read_priority;
  15. static json_string isValidString(json_string::const_iterator & ptr, json_string::const_iterator & end) json_read_priority;
  16. static void isValidNamedObject(json_string::const_iterator & ptr, json_string::const_iterator & end, JSONNode & parent COMMENT_PARAM(comment)) json_read_priority;
  17. static JSONNode isValidObject(json_string::const_iterator & ptr, json_string::const_iterator & end) json_read_priority;
  18. static JSONNode isValidArray(json_string::const_iterator & ptr, json_string::const_iterator & end) json_read_priority;
  19. static JSONNode isValidRoot(const json_string & json) json_throws(std::invalid_argument) json_read_priority;
  20. };
  21. #endif
  22. #endif