// File: /workspace/github_cpp_makefile_star2_O1/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 0x1ab80(%rip), %rsi     # 0x834ff
leaq 0x1ab86(%rip), %rdx     # 0x8350c
callq 0x43438
movq 0x8(%r12), %rsi
testq %rsi, %rsi
je 0x68a05
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 0x1ab4f(%rip), %rsi     # 0x8350d
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 0x68a05
callq 0x1b4d0
leaq 0x149f4(%rip), %rsi     # 0x7d400
movq %rbx, %rdi
callq 0x1b9d0
movl 0x20(%r15), %edi
cmpl $0xe, %edi
jne 0x68ad1
movq 0x98(%r15), %r12
addq $0x28, %r15
leaq -0x70(%rbp), %rdi
movq %r15, %rsi
callq 0x686e8
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 0x1aaa0(%rip), %rsi     # 0x8351c
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 0x68ac2
callq 0x1b4d0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x68b3a
jmp 0x68b3f
callq 0x6e432
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 0x1aa1f(%rip), %rsi     # 0x8352b
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 0x68b3f
callq 0x1b4d0
testl %r14d, %r14d
je 0x68bb2
movl %r14d, %edi
callq 0x6e432
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 0x1a9b8(%rip), %rsi     # 0x83537
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 0x68bb2
callq 0x1b4d0
movq %rbx, %rax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x68bef
jmp 0x68bd3
jmp 0x68bce
jmp 0x68be1
jmp 0x68c0f
movq %rax, %r14
jmp 0x68c20
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r12, %rdi
jne 0x68c1b
jmp 0x68c20
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
jne 0x68c1b
jmp 0x68c20
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r15, %rdi
je 0x68c00
callq 0x1b4d0
leaq -0x60(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
jne 0x68c1b
jmp 0x68c20
movq %rax, %r14
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x68c20
callq 0x1b4d0
movq (%rbx), %rdi
cmpq -0x50(%rbp), %rdi
je 0x68c2e
callq 0x1b4d0
movq %r14, %rdi
callq 0x1b910