#pragma once #include "JsonNode.hpp" namespace ArduinoJson { class JsonBuffer; namespace Internals { class JsonNode; class JsonParser { public: JsonParser(JsonBuffer* buffer, char* json) : _buffer(buffer), _ptr(json) { } JsonNode* parseAnything(); private: JsonBuffer* _buffer; char* _ptr; bool isEnd() { return *_ptr == 0; } bool skip(char charToSkip); void skipSpaces(); inline JsonNode* parseArray(); inline JsonNode* parseBoolean(); inline JsonNode* parseNull(); inline JsonNode* parseNumber(); inline JsonNode* parseObject(); inline JsonNode* parseObjectKeyValue(); inline JsonNode* parseString(); }; } }