// File: /workspace/github_cpp_makefile_star2_O2/sighingnow[P]compile-pascal/pl0_parser.cpp
// Function: pl0_case_stmt_fn(input_t*)
pair<int, pl0_ast_case_stmt *> pl0_case_stmt_fn(input_t *text) {
    auto parser = ((spaces >> pl0_string_literal("case") << spaces) >> (spaces >> pl0_expression << spaces) << pl0_string_literal("of"))
        + ((pl0_case_term % pl0_character(';')) << (spaces >> pl0_string_literal("end") << spaces));
    auto res = (spaces >> parser << spaces)(text);
    if (verbose) {
        cout << "parsing: Case Statement" << endl;
    }
    return make_pair(std::get<0>(res), new pl0_ast_case_stmt(text->locate(), std::get<1>(res).first, std::get<1>(res).second));
}

// Assembly:
pushq %r14
pushq %rbx
subq $0x16b8, %rsp           # imm = 0x16B8
movq %rdi, %rbx
leaq 0x4b82a(%rip), %rsi     # 0x59106
leaq 0x50(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0xfa26
leaq 0x148(%rsp), %rdi
leaq 0x50(%rsp), %rsi
callq 0x840a
leaq 0x7ddd4(%rip), %rsi     # 0x8b6d8
leaq 0x380(%rsp), %rdi
leaq 0x148(%rsp), %rdx
callq 0x1923c
leaq 0x7ddb8(%rip), %rdx     # 0x8b6d8
leaq 0x808(%rsp), %rdi
leaq 0x380(%rsp), %rsi
callq 0x191c8
leaq 0x7dd9c(%rip), %rsi     # 0x8b6d8
leaq 0x7e6ed(%rip), %rdx     # 0x8c030
leaq 0x2d0(%rsp), %rdi
callq 0x1afd0
leaq 0x7dd81(%rip), %rdx     # 0x8b6d8
leaq 0x6f0(%rsp), %rdi
leaq 0x2d0(%rsp), %rsi
callq 0x1af96
leaq 0x920(%rsp), %rdi
leaq 0x808(%rsp), %rsi
leaq 0x6f0(%rsp), %rdx
callq 0x1bdbe
leaq 0x4b6c5(%rip), %rsi     # 0x59055
leaq 0x30(%rsp), %rdi
leaq 0xe(%rsp), %rdx
callq 0xfa26
leaq 0x100(%rsp), %rdi
leaq 0x30(%rsp), %rsi
callq 0x840a
leaq 0xda8(%rsp), %rdi
leaq 0x920(%rsp), %rsi
leaq 0x100(%rsp), %rdx
callq 0x1bd84
leaq 0xd(%rsp), %rsi
movb $0x3b, (%rsi)
leaq 0xb8(%rsp), %rdi
callq 0x818c
leaq 0x7e9a6(%rip), %rsi     # 0x8c390
leaq 0x190(%rsp), %rdi
leaq 0xb8(%rsp), %rdx
callq 0x1be32
leaq 0x4b6e1(%rip), %rsi     # 0x590e7
leaq 0x10(%rsp), %rdi
leaq 0xc(%rsp), %rdx
callq 0xfa26
leaq 0x70(%rsp), %rdi
leaq 0x10(%rsp), %rsi
callq 0x840a
leaq 0x7dcad(%rip), %rsi     # 0x8b6d8
leaq 0x220(%rsp), %rdi
leaq 0x70(%rsp), %rdx
callq 0x1923c
leaq 0x7dc94(%rip), %rdx     # 0x8b6d8
leaq 0x5d8(%rsp), %rdi
leaq 0x220(%rsp), %rsi
callq 0x191c8
leaq 0x430(%rsp), %rdi
leaq 0x190(%rsp), %rsi
leaq 0x5d8(%rsp), %rdx
callq 0x1bdf8
leaq 0x1298(%rsp), %rdi
leaq 0xda8(%rsp), %rsi
leaq 0x430(%rsp), %rdx
callq 0x1bba8
leaq 0x430(%rsp), %rdi
callq 0x1539e
leaq 0x5d8(%rsp), %rdi
callq 0x12312
leaq 0x220(%rsp), %rdi
callq 0x1232c
leaq 0x70(%rsp), %rdi
callq 0x11074
leaq 0x10(%rsp), %rdi
callq 0x5120
leaq 0x190(%rsp), %rdi
callq 0x153b8
leaq 0xb8(%rsp), %rdi
callq 0xfaa6
leaq 0xda8(%rsp), %rdi
callq 0x153ce
leaq 0x100(%rsp), %rdi
callq 0x11074
leaq 0x30(%rsp), %rdi
callq 0x5120
leaq 0x920(%rsp), %rdi
callq 0x153e8
leaq 0x6f0(%rsp), %rdi
callq 0x14716
leaq 0x2d0(%rsp), %rdi
callq 0x14730
leaq 0x808(%rsp), %rdi
callq 0x12312
leaq 0x380(%rsp), %rdi
callq 0x1232c
leaq 0x148(%rsp), %rdi
callq 0x11074
leaq 0x50(%rsp), %rdi
callq 0x5120
leaq 0x7db6d(%rip), %rsi     # 0x8b6d8
leaq 0x920(%rsp), %rdi
leaq 0x1298(%rsp), %rdx
callq 0x1bf1a
leaq 0x7db51(%rip), %rdx     # 0x8b6d8
leaq 0xda8(%rsp), %rdi
leaq 0x920(%rsp), %rsi
callq 0x1be68
leaq 0x430(%rsp), %rdi
leaq 0xda8(%rsp), %rsi
movq %rbx, %rdx
callq 0x15402
leaq 0xda8(%rsp), %rdi
callq 0x15612
leaq 0x920(%rsp), %rdi
callq 0x1562c
pushq $0x38
popq %rdi
callq 0x5260
movq %rax, %r14
movq 0x8(%rbx), %rsi
leaq 0x458(%rsp), %rcx
movq -0x8(%rcx), %rdx
movq %rax, %rdi
callq 0x15642
leaq 0x430(%rsp), %rdi
movl 0x40(%rdi), %ebx
callq 0x15668
leaq 0x1298(%rsp), %rdi
callq 0x1567e
movl %ebx, %eax
movq %r14, %rdx
addq $0x16b8, %rsp           # imm = 0x16B8
popq %rbx
popq %r14
retq
movq %rax, %rbx
pushq $0x38
popq %rsi
movq %r14, %rdi
callq 0x5270
jmp 0xdc31
movq %rax, %rbx
leaq 0x430(%rsp), %rdi
callq 0x15668
jmp 0xdc67
movq %rax, %rbx
leaq 0xda8(%rsp), %rdi
callq 0x15612
jmp 0xdc55
movq %rax, %rbx
leaq 0x920(%rsp), %rdi
callq 0x1562c
jmp 0xdc67
movq %rax, %rbx
leaq 0x1298(%rsp), %rdi
callq 0x1567e
jmp 0xdd61
movq %rax, %rbx
leaq 0x430(%rsp), %rdi
callq 0x1539e
jmp 0xdc8e
movq %rax, %rbx
leaq 0x5d8(%rsp), %rdi
callq 0x12312
jmp 0xdca0
movq %rax, %rbx
leaq 0x220(%rsp), %rdi
callq 0x1232c
jmp 0xdcb2
movq %rax, %rbx
leaq 0x70(%rsp), %rdi
callq 0x11074
jmp 0xdcc1
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x5120
leaq 0x190(%rsp), %rdi
callq 0x153b8
leaq 0xb8(%rsp), %rdi
callq 0xfaa6
leaq 0xda8(%rsp), %rdi
callq 0x153ce
leaq 0x100(%rsp), %rdi
callq 0x11074
leaq 0x30(%rsp), %rdi
callq 0x5120
leaq 0x920(%rsp), %rdi
callq 0x153e8
leaq 0x6f0(%rsp), %rdi
callq 0x14716
leaq 0x2d0(%rsp), %rdi
callq 0x14730
leaq 0x808(%rsp), %rdi
callq 0x12312
leaq 0x380(%rsp), %rdi
callq 0x1232c
leaq 0x148(%rsp), %rdi
callq 0x11074
leaq 0x50(%rsp), %rdi
callq 0x5120
movq %rbx, %rdi
callq 0x53f0
movq %rax, %rbx
jmp 0xdccb
movq %rax, %rbx
jmp 0xdcd8
movq %rax, %rbx
jmp 0xdce5
movq %rax, %rbx
jmp 0xdcf2
movq %rax, %rbx
jmp 0xdcff
movq %rax, %rbx
jmp 0xdd09
movq %rax, %rbx
jmp 0xdd16
movq %rax, %rbx
jmp 0xdd23
movq %rax, %rbx
jmp 0xdd30
movq %rax, %rbx
jmp 0xdd3d
movq %rax, %rbx
jmp 0xdd4a
movq %rax, %rbx
jmp 0xdd57
movq %rax, %rbx
jmp 0xdd61