// File: /workspace/github_cpp_makefile_star2_O3/xelia-it[P]mustache/test/src/../../src/../third-party/json/single_include/nlohmann/json.hpp
// Function: nlohmann::json_abi_v3_11_2::detail::parser<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>, void>, nlohmann::json_abi_v3_11_2::detail::iterator_input_adapter<char const*>>::exception_message(nlohmann::json_abi_v3_11_2::detail::lexer_base<nlohmann::json_abi_v3_11_2::basic_json<std::map, std::vector, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, bool, long, unsigned long, double, std::allocator, nlohmann::json_abi_v3_11_2::adl_serializer, std::vector<unsigned char, std::allocator<unsigned char>>, void>>::token_type, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>> const&)
std::string exception_message(const token_type expected, const std::string& context)
    {
        std::string error_msg = "syntax error ";

        if (!context.empty())
        {
            error_msg += concat("while parsing ", context, ' ');
        }

        error_msg += "- ";

        if (last_token == token_type::parse_error)
        {
            error_msg += concat(m_lexer.get_error_message(), "; last read: '",
                                m_lexer.get_token_string(), '\'');
        }
        else
        {
            error_msg += concat("unexpected ", lexer_t::token_type_name(last_token));
        }

        if (expected != token_type::uninitialized)
        {
            error_msg += concat("; expected ", lexer_t::token_type_name(expected));
        }

        return error_msg;
    }

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rcx, %r12
movl %edx, %r14d
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, -0x50(%rbp)
movq %rax, (%rdi)
leaq 0x1aa94(%rip), %rsi     # 0x824cf
leaq 0x1aa9a(%rip), %rdx     # 0x824dc
callq 0x431c8
movq 0x8(%r12), %rsi
testq %rsi, %rsi
je 0x67ac1
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
movq $0x0, -0x8(%r13)
movb $0x0, (%r13)
addq $0xf, %rsi
leaq -0x48(%rbp), %rdi
callq 0x1b7e0
leaq 0x1aa63(%rip), %rsi     # 0x824dd
leaq -0x48(%rbp), %rdi
callq 0x1b9d0
movq (%r12), %rsi
movq 0x8(%r12), %rdx
leaq -0x48(%rbp), %rdi
callq 0x1b150
leaq -0x48(%rbp), %rdi
movl $0x20, %esi
callq 0x1b480
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x1b150
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x67ac1
callq 0x1b4d0
leaq 0x14938(%rip), %rsi     # 0x7c400
movq %rbx, %rdi
callq 0x1b9d0
movl 0x20(%r15), %edi
cmpl $0xe, %edi
jne 0x67b8d
movq 0x98(%r15), %r12
addq $0x28, %r15
leaq -0x70(%rbp), %rdi
movq %r15, %rsi
callq 0x677a4
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq %r12, %rdi
callq 0x1b220
movq -0x68(%rbp), %rcx
leaq (%rax,%rcx), %rsi
addq $0xf, %rsi
leaq -0x48(%rbp), %rdi
callq 0x1b7e0
leaq -0x48(%rbp), %rdi
movq %r12, %rsi
callq 0x1b9d0
leaq 0x1a9b4(%rip), %rsi     # 0x824ec
leaq -0x48(%rbp), %rdi
callq 0x1b9d0
movq -0x70(%rbp), %rsi
movq -0x68(%rbp), %rdx
leaq -0x48(%rbp), %rdi
callq 0x1b150
leaq -0x48(%rbp), %rdi
movl $0x27, %esi
callq 0x1b480
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x1b150
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x67b7e
callq 0x1b4d0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x67bf6
jmp 0x67bfb
callq 0x6d384
movq %rax, %r15
leaq -0x38(%rbp), %r12
movq %r12, -0x10(%r12)
movq $0x0, -0x8(%r12)
movb $0x0, (%r12)
movq %rax, %rdi
callq 0x1b220
leaq 0xb(%rax), %rsi
leaq -0x48(%rbp), %rdi
callq 0x1b7e0
leaq 0x1a933(%rip), %rsi     # 0x824fb
leaq -0x48(%rbp), %rdi
callq 0x1b9d0
leaq -0x48(%rbp), %rdi
movq %r15, %rsi
callq 0x1b9d0
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x1b150
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
je 0x67bfb
callq 0x1b4d0
testl %r14d, %r14d
je 0x67c6e
movl %r14d, %edi
callq 0x6d384
movq %rax, %r14
leaq -0x38(%rbp), %r15
movq %r15, -0x10(%r15)
movq $0x0, -0x8(%r15)
movb $0x0, (%r15)
movq %rax, %rdi
callq 0x1b220
leaq 0xb(%rax), %rsi
leaq -0x48(%rbp), %rdi
callq 0x1b7e0
leaq 0x1a8cc(%rip), %rsi     # 0x82507
leaq -0x48(%rbp), %rdi
callq 0x1b9d0
leaq -0x48(%rbp), %rdi
movq %r14, %rsi
callq 0x1b9d0
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq %rbx, %rdi
callq 0x1b150
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x67c6e
callq 0x1b4d0
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x67cab
jmp 0x67c8f
jmp 0x67c8a
jmp 0x67c9d
jmp 0x67ccb
movq %rax, %r14
jmp 0x67cdc
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
jne 0x67cd7
jmp 0x67cdc
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
jne 0x67cd7
jmp 0x67cdc
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x67cbc
callq 0x1b4d0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x67cd7
jmp 0x67cdc
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x67cdc
callq 0x1b4d0
movq (%rbx), %rdi
cmpq -0x50(%rbp), %rdi
je 0x67cea
callq 0x1b4d0
movq %r14, %rdi
callq 0x1b910