neoGFX
Cross-platform C++ app/game engine
Loading...
Searching...
No Matches
json.inl File Reference
#include <neolib/neolib.hpp>
#include <variant>
#include <unordered_map>
#include <fstream>
#include <iomanip>
#include <type_traits>
#include <boost/lexical_cast.hpp>
#include <boost/functional/hash.hpp>
#include <neolib/core/string_numeric.hpp>
#include <neolib/core/string_utf.hpp>
#include <neolib/core/string_utils.hpp>
#include <neolib/core/type_traits.hpp>

Go to the source code of this file.

Classes

struct  neolib::json_detail::hash_first_character
 
struct  neolib::json_detail::iterator_traits< Syntax, Alloc, CharT, Traits, CharAlloc >
 
struct  neolib::json_detail::const_iterator_traits< Syntax, Alloc, CharT, Traits, CharAlloc >
 
class  neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::iterator
 
class  neolib::basic_json_value< Syntax, Alloc, CharT, Traits, CharAlloc >::const_iterator
 
class  neolib::basic_json< Syntax, Alloc, CharT, Traits, CharAlloc >::iterator
 
class  neolib::basic_json< Syntax, Alloc, CharT, Traits, CharAlloc >::const_iterator
 

Namespaces

namespace  neolib
 
namespace  neolib::json_detail
 

Enumerations

enum class  neolib::json_detail::keyword { neolib::json_detail::True , neolib::json_detail::False , neolib::json_detail::Null }
 
enum class  neolib::json_detail::token : uint8_t {
  neolib::json_detail::Invalid , neolib::json_detail::OpenObject , neolib::json_detail::CloseObject , neolib::json_detail::OpenArray ,
  neolib::json_detail::CloseArray , neolib::json_detail::Colon , neolib::json_detail::Comma , neolib::json_detail::Quote ,
  neolib::json_detail::Character , neolib::json_detail::Escape , neolib::json_detail::EscapingUnicode , neolib::json_detail::Escaped ,
  neolib::json_detail::Plus , neolib::json_detail::Minus , neolib::json_detail::Digit , neolib::json_detail::HexDigit ,
  neolib::json_detail::EscapedOrHexDigit , neolib::json_detail::DecimalPoint , neolib::json_detail::Exponent , neolib::json_detail::Asterisk ,
  neolib::json_detail::ForwardSlash , neolib::json_detail::Symbol , neolib::json_detail::Space , neolib::json_detail::Whitespace ,
  neolib::json_detail::EndOfInput , neolib::json_detail::TOKEN_COUNT
}
 
enum class  neolib::json_detail::state {
  neolib::json_detail::Error , neolib::json_detail::Ignore , neolib::json_detail::EndOfParse , neolib::json_detail::Element ,
  neolib::json_detail::Object , neolib::json_detail::Array , neolib::json_detail::Close , neolib::json_detail::Value ,
  neolib::json_detail::NeedValueSeparator , neolib::json_detail::NeedValue , neolib::json_detail::NeedObjectValueSeparator , neolib::json_detail::NeedObjectValue ,
  neolib::json_detail::Keyword , neolib::json_detail::Name , neolib::json_detail::EndName , neolib::json_detail::String ,
  neolib::json_detail::StringEnd , neolib::json_detail::NumberIntNeedDigit , neolib::json_detail::NumberInt , neolib::json_detail::NumberFracNeedDigit ,
  neolib::json_detail::NumberFrac , neolib::json_detail::NumberExpSign , neolib::json_detail::NumberExpIntNeedDigit , neolib::json_detail::NumberExpInt ,
  neolib::json_detail::Escaping , neolib::json_detail::Escaped , neolib::json_detail::EscapingUnicode , neolib::json_detail::CppStyleComment ,
  neolib::json_detail::CStyleComment , neolib::json_detail::STATE_COUNT
}
 

Functions

std::string neolib::json_detail::to_string (state aState)
 
template<json_syntax Syntax>
constexpr std::array< state, TOKEN_COUNTneolib::json_detail::object_state ()
 
template<json_syntax Syntax>
constexpr std::array< state, TOKEN_COUNTneolib::json_detail::need_value_state ()
 
template<json_syntax Syntax>
constexpr std::array< state, TOKEN_COUNTneolib::json_detail::need_object_value_state ()
 
template<json_syntax Syntax>
constexpr std::array< state, TOKEN_COUNTneolib::json_detail::value_state ()
 
template<json_syntax Syntax>
constexpr std::array< state, TOKEN_COUNTneolib::json_detail::keyword_state ()
 
template<typename CharT >
token neolib::json_detail::to_token (const std::array< token, 256 > &aTokenTable, CharT aCharacter)
 
template<json_syntax Syntax, typename CharT >
state neolib::json_detail::next_state (state aCurrentState, CharT aCharacter)
 
template<json_syntax Syntax, typename CharT >
state neolib::json_detail::next_state (state aCurrentState, state aPreviousState, CharT aCurrentCharacter, CharT aNextCharacter)
 
template<json_syntax Syntax>
constexpr const charneolib::document_type ()
 

Variables

constexpr bool neolib::json_detail::debug = false
 
constexpr std::size_t neolib::json_detail::TOKEN_COUNT = static_cast<std::size_t>(token::TOKEN_COUNT)
 
constexpr token neolib::json_detail::TXXX = token::Invalid
 
constexpr token neolib::json_detail::TOBJ = token::OpenObject
 
constexpr token neolib::json_detail::TCLO = token::CloseObject
 
constexpr token neolib::json_detail::TARR = token::OpenArray
 
constexpr token neolib::json_detail::TCLA = token::CloseArray
 
constexpr token neolib::json_detail::TCOL = token::Colon
 
constexpr token neolib::json_detail::TCOM = token::Comma
 
constexpr token neolib::json_detail::TQOT = token::Quote
 
constexpr token neolib::json_detail::TCHA = token::Character
 
constexpr token neolib::json_detail::TESC = token::Escape
 
constexpr token neolib::json_detail::TESU = token::EscapingUnicode
 
constexpr token neolib::json_detail::TECH = token::Escaped
 
constexpr token neolib::json_detail::TPLU = token::Plus
 
constexpr token neolib::json_detail::TMIN = token::Minus
 
constexpr token neolib::json_detail::TDIG = token::Digit
 
constexpr token neolib::json_detail::THEX = token::HexDigit
 
constexpr token neolib::json_detail::TEHX = token::EscapedOrHexDigit
 
constexpr token neolib::json_detail::TDEC = token::DecimalPoint
 
constexpr token neolib::json_detail::TEXP = token::Exponent
 
constexpr token neolib::json_detail::TAST = token::Asterisk
 
constexpr token neolib::json_detail::TFWD = token::ForwardSlash
 
constexpr token neolib::json_detail::TSYM = token::Symbol
 
constexpr token neolib::json_detail::TSPA = token::Space
 
constexpr token neolib::json_detail::TWSP = token::Whitespace
 
constexpr token neolib::json_detail::TZZZ = token::EndOfInput
 
constexpr std::size_t neolib::json_detail::STATE_COUNT = static_cast<std::size_t>(state::STATE_COUNT)
 
constexpr state neolib::json_detail::SXXX = state::Error
 
constexpr state neolib::json_detail::SIGN = state::Ignore
 
constexpr state neolib::json_detail::SZZZ = state::EndOfParse
 
constexpr state neolib::json_detail::SELE = state::Element
 
constexpr state neolib::json_detail::SOBJ = state::Object
 
constexpr state neolib::json_detail::SARR = state::Array
 
constexpr state neolib::json_detail::SCLO = state::Close
 
constexpr state neolib::json_detail::SVAL = state::Value
 
constexpr state neolib::json_detail::SNVS = state::NeedValueSeparator
 
constexpr state neolib::json_detail::SNVA = state::NeedValue
 
constexpr state neolib::json_detail::SOVS = state::NeedObjectValueSeparator
 
constexpr state neolib::json_detail::SNOV = state::NeedObjectValue
 
constexpr state neolib::json_detail::SKEY = state::Keyword
 
constexpr state neolib::json_detail::SNAM = state::Name
 
constexpr state neolib::json_detail::SENM = state::EndName
 
constexpr state neolib::json_detail::SSTR = state::String
 
constexpr state neolib::json_detail::SSEN = state::StringEnd
 
constexpr state neolib::json_detail::SNU1 = state::NumberIntNeedDigit
 
constexpr state neolib::json_detail::SNU2 = state::NumberInt
 
constexpr state neolib::json_detail::SNU3 = state::NumberFracNeedDigit
 
constexpr state neolib::json_detail::SNU4 = state::NumberFrac
 
constexpr state neolib::json_detail::SNU5 = state::NumberExpSign
 
constexpr state neolib::json_detail::SNU6 = state::NumberExpIntNeedDigit
 
constexpr state neolib::json_detail::SNU7 = state::NumberExpInt
 
constexpr state neolib::json_detail::SESC = state::Escaping
 
constexpr state neolib::json_detail::SESD = state::Escaped
 
constexpr state neolib::json_detail::SEUN = state::EscapingUnicode
 
constexpr state neolib::json_detail::SCM1 = state::CppStyleComment
 
constexpr state neolib::json_detail::SCM2 = state::CStyleComment
 
template<json_syntax Syntax>
constexpr std::array< std::array< state, TOKEN_COUNT >, STATE_COUNTneolib::json_detail::sStateTables
 
template<json_syntax Syntax>
constexpr std::array< token, 256 > neolib::json_detail::sTokenTable