/* * Copyright (c) 2018-2020, Andreas Kling * * SPDX-License-Identifier: BSD-2-Clause */ #pragma once #include #include namespace AK { class JsonParser : private GenericLexer { public: explicit JsonParser(const StringView& input) : GenericLexer(input) { } Optional parse(); private: Optional parse_helper(); String consume_and_unescape_string(); Optional parse_array(); Optional parse_object(); Optional parse_number(); Optional parse_string(); Optional parse_false(); Optional parse_true(); Optional parse_null(); String m_last_string_starting_with_character[256]; }; } using AK::JsonParser;