// File: /workspace/github_cpp_makefile_star2_O1/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
movq %rdi, %rbx
leaq 0x10(%rdi), %rax
movq %rax, (%rdi)
movl %esi, %eax
leaq 0x2c7f0(%rip), %rcx     # 0x48140
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x2f715(%rip), %rsi     # 0x4b075
leaq 0x2f711(%rip), %rdx     # 0x4b078
jmp 0x1bc21
leaq 0x2c973(%rip), %rsi     # 0x482e6
leaq 0x2c96f(%rip), %rdx     # 0x482e9
jmp 0x1bc21
leaq 0x2c949(%rip), %rsi     # 0x482cf
leaq 0x2c946(%rip), %rdx     # 0x482d3
jmp 0x1bc21
leaq 0x2c93b(%rip), %rsi     # 0x482d4
leaq 0x2c937(%rip), %rdx     # 0x482d7
jmp 0x1bc21
leaq 0x2bb5b(%rip), %rsi     # 0x47507
leaq 0x2bb55(%rip), %rdx     # 0x47508
jmp 0x1bc21
leaq 0x2c90d(%rip), %rsi     # 0x482cc
leaq 0x2c908(%rip), %rdx     # 0x482ce
jmp 0x1bc21
leaq 0x2baea(%rip), %rsi     # 0x474bc
leaq 0x2bae4(%rip), %rdx     # 0x474bd
jmp 0x1bc21
leaq 0x29778(%rip), %rsi     # 0x4515d
leaq 0x29772(%rip), %rdx     # 0x4515e
jmp 0x1bc21
leaq 0x2c8d1(%rip), %rsi     # 0x482c9
leaq 0x2c8cc(%rip), %rdx     # 0x482cb
jmp 0x1bc21
leaq 0x2c8bb(%rip), %rsi     # 0x482c6
leaq 0x2c8b6(%rip), %rdx     # 0x482c8
jmp 0x1bc21
leaq 0x2c898(%rip), %rsi     # 0x482b6
leaq 0x2c895(%rip), %rdx     # 0x482ba
jmp 0x1bc21
leaq 0x2c477(%rip), %rsi     # 0x47ea8
leaq 0x2c472(%rip), %rdx     # 0x47eaa
jmp 0x1bc21
leaq 0x2f40f(%rip), %rsi     # 0x4ae53
leaq 0x2f40d(%rip), %rdx     # 0x4ae58
jmp 0x1bc21
leaq 0x2baae(%rip), %rsi     # 0x47505
leaq 0x2baa8(%rip), %rdx     # 0x47506
jmp 0x1bc21
leaq 0x2c85d(%rip), %rsi     # 0x482c7
leaq 0x2c857(%rip), %rdx     # 0x482c8
jmp 0x1bc21
leaq 0x2c82e(%rip), %rsi     # 0x482ab
leaq 0x2c829(%rip), %rdx     # 0x482ad
jmp 0x1bc21
leaq 0x2ba2a(%rip), %rsi     # 0x474ba
leaq 0x2ba24(%rip), %rdx     # 0x474bb
jmp 0x1bc21
leaq 0x2c80b(%rip), %rsi     # 0x482ae
leaq 0x2c806(%rip), %rdx     # 0x482b0
jmp 0x1bc21
leaq 0x2c827(%rip), %rsi     # 0x482dd
leaq 0x2c826(%rip), %rdx     # 0x482e3
jmp 0x1bc21
leaq 0x2c7db(%rip), %rsi     # 0x482a4
leaq 0x2c7da(%rip), %rdx     # 0x482aa
jmp 0x1bc21
leaq 0x2ba27(%rip), %rsi     # 0x47503
leaq 0x2ba21(%rip), %rdx     # 0x47504
jmp 0x1bc21
leaq 0x2c7db(%rip), %rsi     # 0x482ca
leaq 0x2c7d5(%rip), %rdx     # 0x482cb
jmp 0x1bc21
leaq 0x2c3a2(%rip), %rsi     # 0x47ea4
leaq 0x2c39d(%rip), %rdx     # 0x47ea6
jmp 0x1bc21
leaq 0x2c79c(%rip), %rsi     # 0x482b1
leaq 0x2c799(%rip), %rdx     # 0x482b5
jmp 0x1bc21
leaq 0x2b9e1(%rip), %rsi     # 0x47509
leaq 0x2b9db(%rip), %rdx     # 0x4750a
jmp 0x1bc21
leaq 0x2c36a(%rip), %rsi     # 0x47ea5
leaq 0x2c364(%rip), %rdx     # 0x47ea6
jmp 0x1bc21
leaq 0x2f537(%rip), %rsi     # 0x4b085
leaq 0x2f534(%rip), %rdx     # 0x4b089
jmp 0x1bc21
leaq 0x2c77a(%rip), %rsi     # 0x482db
leaq 0x2c774(%rip), %rdx     # 0x482dc
jmp 0x1bc21
leaq 0x2c747(%rip), %rsi     # 0x482bb
leaq 0x2c74a(%rip), %rdx     # 0x482c5
jmp 0x1bc21
leaq 0x31064(%rip), %rsi     # 0x4cbeb
leaq 0x31061(%rip), %rdx     # 0x4cbef
jmp 0x1bc21
leaq 0x2f224(%rip), %rsi     # 0x4adbe
leaq 0x2f21e(%rip), %rdx     # 0x4adbf
jmp 0x1bc21
leaq 0x29813(%rip), %rsi     # 0x453bd
leaq 0x2980d(%rip), %rdx     # 0x453be
jmp 0x1bc21
leaq 0x2b951(%rip), %rsi     # 0x4750b
leaq 0x2b94c(%rip), %rdx     # 0x4750d
jmp 0x1bc21
leaq 0x2c70e(%rip), %rsi     # 0x482d8
leaq 0x2c709(%rip), %rdx     # 0x482da
jmp 0x1bc21
leaq 0x2b934(%rip), %rsi     # 0x4750e
leaq 0x2b92f(%rip), %rdx     # 0x47510
jmp 0x1bc21
leaq 0x2c2c3(%rip), %rsi     # 0x47ead
leaq 0x2c2bd(%rip), %rdx     # 0x47eae
jmp 0x1bc21
leaq 0x2c6ea(%rip), %rsi     # 0x482e4
leaq 0x2c6e4(%rip), %rdx     # 0x482e5
jmp 0x1bc21
leaq 0x2c6e0(%rip), %rsi     # 0x482ea
leaq 0x2c6de(%rip), %rdx     # 0x482ef
jmp 0x1bc21
leaq 0x2c6b3(%rip), %rsi     # 0x482cd
leaq 0x2c6ad(%rip), %rdx     # 0x482ce
movq %rbx, %rdi
callq 0x11866
movq %rbx, %rax
popq %rbx
retq