// File: /workspace/github_cpp_makefile_star2_O2/pfnet-research[P]pml/src/parser.cpp
// Function: token_kind_to_string[abi:cxx11](token_t::kind_t)
std::string token_kind_to_string(token_t::kind_t kind) {
    using kind_t = token_t::kind_t;
    switch (kind) {
    case kind_t::Let:
        return "let";
    case kind_t::LetFun:
        return "letfun";
    case kind_t::In:
        return "in";
    case kind_t::If:
        return "if";
    case kind_t::Then:
        return "then";
    case kind_t::Else:
        return "else";
    case kind_t::Rand:
        return "rand";
    case kind_t::Ident:
        return "identifier";
    case kind_t::Arrow:
        return "->";
    case kind_t::FatArrow:
        return "=>";
    case kind_t::Or:
        return "\\/";
    case kind_t::And:
        return "/\\";
    case kind_t::Prob:
        return "Prob";
    case kind_t::Not:
        return "not";
    case kind_t::DoubleEq:
        return "==";
    case kind_t::Neq:
        return "!=";
    case kind_t::Less:
        return "<";
    case kind_t::Leq:
        return "<=";
    case kind_t::Geq:
        return ">=";
    case kind_t::Greater:
        return ">";
    case kind_t::Eq:
        return "=";
    case kind_t::Plus:
        return "+";
    case kind_t::Minus:
        return "-";
    case kind_t::Star:
        return "*";
    case kind_t::Slash:
        return "/";
    case kind_t::Comma:
        return ",";
    case kind_t::Amp:
        return "&";
    case kind_t::BackSlash:
        return "\\";
    case kind_t::Bar:
        return "|";
    case kind_t::Colon:
        return ":";
    case kind_t::Int:
        return "number";
    case kind_t::True:
        return "true";
    case kind_t::False:
        return "false";
    case kind_t::LParen:
        return "(";
    case kind_t::RParen:
        return ")";
    case kind_t::LBrace:
        return "{";
    case kind_t::RBrace:
        return "}";
    case kind_t::Eof:
        return "eof";
    case kind_t::Dummy:
        return "dummy";
    }
}

// Assembly:
pushq %rbx
subq $0x10, %rsp
movq %rdi, %rbx
movl %esi, %eax
leaq 0x2432f(%rip), %rcx     # 0x39460
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x275a0(%rip), %rsi     # 0x3c6e1
jmp 0x152df
leaq 0x244b9(%rip), %rsi     # 0x39606
jmp 0x152df
leaq 0x24496(%rip), %rsi     # 0x395ef
jmp 0x152df
leaq 0x2448f(%rip), %rsi     # 0x395f4
jmp 0x152df
leaq 0x236b6(%rip), %rsi     # 0x38827
jmp 0x152df
leaq 0x2446f(%rip), %rsi     # 0x395ec
jmp 0x152df
leaq 0x23653(%rip), %rsi     # 0x387dc
jmp 0x152df
leaq 0x20fbc(%rip), %rsi     # 0x36151
jmp 0x152df
leaq 0x24448(%rip), %rsi     # 0x395e9
jmp 0x152df
leaq 0x24439(%rip), %rsi     # 0x395e6
jmp 0x152df
leaq 0x2441d(%rip), %rsi     # 0x395d6
jmp 0x152df
leaq 0x24003(%rip), %rsi     # 0x391c8
jmp 0x152df
leaq 0x272ee(%rip), %rsi     # 0x3c4bf
jmp 0x152df
leaq 0x23648(%rip), %rsi     # 0x38825
jmp 0x152df
leaq 0x243fe(%rip), %rsi     # 0x395e7
jmp 0x152df
leaq 0x243d6(%rip), %rsi     # 0x395cb
jmp 0x152df
leaq 0x235d9(%rip), %rsi     # 0x387da
jmp 0x152df
leaq 0x243c1(%rip), %rsi     # 0x395ce
jmp 0x152df
leaq 0x243e4(%rip), %rsi     # 0x395fd
jmp 0x152df
leaq 0x2439f(%rip), %rsi     # 0x395c4
jmp 0x152df
leaq 0x235f2(%rip), %rsi     # 0x38823
jmp 0x152df
leaq 0x243ad(%rip), %rsi     # 0x395ea
jmp 0x152df
leaq 0x23f7b(%rip), %rsi     # 0x391c4
jmp 0x152df
leaq 0x2437c(%rip), %rsi     # 0x395d1
jmp 0x152df
leaq 0x235c8(%rip), %rsi     # 0x38829
jmp 0x152df
leaq 0x23f5b(%rip), %rsi     # 0x391c5
jmp 0x152df
leaq 0x2747e(%rip), %rsi     # 0x3c6f1
jmp 0x152df
leaq 0x2437f(%rip), %rsi     # 0x395fb
jmp 0x152df
leaq 0x24356(%rip), %rsi     # 0x395db
jmp 0x152df
leaq 0x292fd(%rip), %rsi     # 0x3e58b
jmp 0x152df
leaq 0x27193(%rip), %rsi     # 0x3c42a
jmp 0x152df
leaq 0x210e9(%rip), %rsi     # 0x36389
jmp 0x152df
leaq 0x23582(%rip), %rsi     # 0x3882b
jmp 0x152df
leaq 0x24346(%rip), %rsi     # 0x395f8
jmp 0x152df
leaq 0x23573(%rip), %rsi     # 0x3882e
jmp 0x152df
leaq 0x23f09(%rip), %rsi     # 0x391cd
jmp 0x152df
leaq 0x24337(%rip), %rsi     # 0x39604
jmp 0x152df
leaq 0x24334(%rip), %rsi     # 0x3960a
jmp 0x152df
leaq 0x2430e(%rip), %rsi     # 0x395ed
leaq 0xf(%rsp), %rdx
movq %rbx, %rdi
callq 0xeb2e
movq %rbx, %rax
addq $0x10, %rsp
popq %rbx
retq