// File: /workspace/github_cpp_makefile_star2_O2/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 %r12
pushq %rbx
subq $0x50, %rsp
movq %rcx, %r12
movl %edx, %r14d
movq %rsi, %r15
movq %rdi, %rbx
leaq 0x17e2b(%rip), %rsi     # 0x7b63b
leaq -0x48(%rbp), %rdx
callq 0x24210
cmpq $0x0, 0x8(%r12)
je 0x63850
leaq -0x70(%rbp), %rcx
movb $0x20, (%rcx)
leaq 0x17e1a(%rip), %rsi     # 0x7b649
leaq -0x48(%rbp), %rdi
movq %r12, %rdx
callq 0x68a29
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x24a60
leaq -0x48(%rbp), %rdi
callq 0x24ad8
leaq 0x11b81(%rip), %rsi     # 0x753d8
movq %rbx, %rdi
callq 0x24a10
movl 0x20(%r15), %edi
cmpl $0xe, %edi
jne 0x638be
movq 0x98(%r15), %rax
addq $0x28, %r15
movq %rax, -0x50(%rbp)
leaq -0x70(%rbp), %rdi
movq %r15, %rsi
callq 0x63608
leaq -0x21(%rbp), %r8
movb $0x27, (%r8)
leaq 0x17dc6(%rip), %rdx     # 0x7b658
leaq -0x48(%rbp), %rdi
leaq -0x50(%rbp), %rsi
leaq -0x70(%rbp), %rcx
callq 0x68a99
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x24a60
leaq -0x48(%rbp), %rdi
callq 0x24ad8
leaq -0x70(%rbp), %rdi
jmp 0x638ea
callq 0x68b84
leaq -0x70(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x17d96(%rip), %rsi     # 0x7b667
leaq -0x48(%rbp), %rdi
callq 0x68b1b
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x24a60
leaq -0x48(%rbp), %rdi
callq 0x24ad8
testl %r14d, %r14d
je 0x63928
movl %r14d, %edi
callq 0x68b84
leaq -0x70(%rbp), %rdx
movq %rax, (%rdx)
leaq 0x17d69(%rip), %rsi     # 0x7b673
leaq -0x48(%rbp), %rdi
callq 0x68b1b
leaq -0x48(%rbp), %rsi
movq %rbx, %rdi
callq 0x24a60
leaq -0x48(%rbp), %rdi
callq 0x24ad8
movq %rbx, %rax
addq $0x50, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r14
leaq -0x48(%rbp), %rdi
callq 0x24ad8
jmp 0x6394b
jmp 0x63959
movq %rax, %r14
leaq -0x70(%rbp), %rdi
jmp 0x63960
jmp 0x63969
jmp 0x63969
jmp 0x63959
jmp 0x63969
movq %rax, %r14
leaq -0x48(%rbp), %rdi
callq 0x24ad8
jmp 0x6396c
jmp 0x63969
movq %rax, %r14
movq %rbx, %rdi
callq 0x24ad8
movq %r14, %rdi
callq 0x24950