// File: /workspace/github_cpp_makefile_star2_O1/WayfireWM[P]wf-utils/wayfire/lexer/symbol.cpp
// Function: wf::to_string[abi:cxx11](wf::symbol_t const&)
std::string to_string(const symbol_t &s)
{
    std::string out = "Symbol [";
    switch (s.type)
    {
    case symbol_t::type_t::END:
        out.append("END");
        break;
    case symbol_t::type_t::IDENTIFIER:
        out.append("Identifier: ").append(get_string(s.value));
        break;
    case symbol_t::type_t::LITERAL:
        out.append("Literal: [");
        out.append(to_string(s.value));
        out.append("]");
        break;
    case symbol_t::type_t::OPERATOR:
        out.append("Operator: ").append(get_string(s.value));
        break;
    case symbol_t::type_t::KEYWORD:
        out.append("Keyword: ").append(get_string(s.value));
        break;
    case symbol_t::type_t::STRUCTURAL:
        out.append("Structural: ").append(get_string(s.value));
        break;
    case symbol_t::type_t::SIGNAL:
        out.append("Signal: ").append(get_string(s.value));
        break;
    }
    out.append("]");
    return out;
}

// Assembly:
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x10(%rdi), %r12
movq %r12, (%rdi)
leaq 0x4819(%rip), %rsi      # 0xd4e7
leaq 0x481a(%rip), %rdx      # 0xd4ef
callq 0x6382
movl (%r14), %eax
cmpq $0x6, %rax
ja 0x8e96
leaq 0x4756(%rip), %rcx      # 0xd444
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x47f2(%rip), %rsi      # 0xd4f0
jmp 0x8d91
leaq 0x480d(%rip), %rsi      # 0xd517
movq %rbx, %rdi
callq 0x53b0
movq %rax, %r15
addq $0x8, %r14
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0xb4ee
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x5090
jmp 0x8e7b
leaq 0x47bd(%rip), %rsi      # 0xd501
movq %rbx, %rdi
callq 0x53b0
addq $0x8, %r14
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0xb518
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %rbx, %rdi
callq 0x5090
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8d8a
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5230
leaq 0x428c(%rip), %rsi      # 0xd01d
movq %rbx, %rdi
callq 0x53b0
jmp 0x8e96
leaq 0x4767(%rip), %rsi      # 0xd50c
movq %rbx, %rdi
callq 0x53b0
movq %rax, %r15
addq $0x8, %r14
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0xb4ee
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x5090
jmp 0x8e7b
leaq 0x4715(%rip), %rsi      # 0xd4f4
movq %rbx, %rdi
callq 0x53b0
movq %rax, %r15
addq $0x8, %r14
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0xb4ee
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x5090
jmp 0x8e7b
leaq 0x470b(%rip), %rsi      # 0xd521
movq %rbx, %rdi
callq 0x53b0
movq %rax, %r15
addq $0x8, %r14
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0xb4ee
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x5090
jmp 0x8e7b
leaq 0x46e1(%rip), %rsi      # 0xd52e
movq %rbx, %rdi
callq 0x53b0
movq %rax, %r15
addq $0x8, %r14
leaq 0x8(%rsp), %rdi
movq %r14, %rsi
callq 0xb4ee
movq 0x8(%rsp), %rsi
movq 0x10(%rsp), %rdx
movq %r15, %rdi
callq 0x5090
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8e96
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5230
leaq 0x4180(%rip), %rsi      # 0xd01d
movq %rbx, %rdi
callq 0x53b0
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
retq
jmp 0x8ebe
jmp 0x8ebe
jmp 0x8ebe
jmp 0x8ebe
jmp 0x8ebe
movq %rax, %r14
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x8eed
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5230
jmp 0x8eed
jmp 0x8eea
jmp 0x8eea
jmp 0x8eea
jmp 0x8eea
jmp 0x8eea
jmp 0x8eea
movq %rax, %r14
movq (%rbx), %rdi
cmpq %r12, %rdi
je 0x8f01
movq (%r12), %rsi
incq %rsi
callq 0x5230
movq %r14, %rdi
callq 0x5390