// File: Eronana[P]strawberry/src/parser.cpp
// Function: Parser::CaseClause()
AST_PTR Parser::CaseClause()
{
    if(!acceptEat("case"))PARSER_ERROR("expected a 'case'");
    DEF_AST_RET(CaseClause);
    ret->expr=Expression();
    if(!acceptEat(TOKEN_COLON))PARSER_ERROR("expected a ':'");
    ret->stmtList=StatementList();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0xa8(%rbp)
movq %rdi, %rax
movq %rax, -0xa0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x98(%rbp)
leaq 0x2944b(%rip), %rsi     # 0x58b21
callq 0x33160
testb $0x1, %al
jne 0x2f7c7
movb $0x1, -0x42(%rbp)
movl $0x70, %edi
callq 0x7180
movq -0x98(%rbp), %rdi
movq %rax, -0xb8(%rbp)
xorl %esi, %esi
callq 0x277f0
movq %rax, -0xb0(%rbp)
jmp 0x2f70f
leaq -0x41(%rbp), %rdi
movq %rdi, -0xc0(%rbp)
callq 0x75f0
movq -0xc0(%rbp), %rdx
leaq 0x293f9(%rip), %rsi     # 0x58b26
leaq -0x40(%rbp), %rdi
callq 0xf990
jmp 0x2f738
movq -0xb0(%rbp), %rsi
movq -0xb8(%rbp), %rdi
leaq -0x40(%rbp), %rdx
callq 0xac90
jmp 0x2f751
movq -0xb8(%rbp), %rdi
movb $0x0, -0x42(%rbp)
leaq 0x5949d(%rip), %rsi     # 0x88c00
leaq -0xf48a(%rip), %rdx     # 0x202e0
callq 0x75c0
jmp 0x2f9d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2f7ae
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2f7a5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x71d0
leaq -0x41(%rbp), %rdi
callq 0x7310
testb $0x1, -0x42(%rbp)
jne 0x2f7b6
jmp 0x2f7c2
movq -0xb8(%rbp), %rdi
callq 0x7230
jmp 0x2f9ce
movl $0x18, %edi
callq 0x72c0
movq %rax, %rdi
movq %rdi, -0xc8(%rbp)
callq 0x33c00
movq -0xc8(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x33c50
movq -0x98(%rbp), %rsi
leaq -0x58(%rbp), %rdi
callq 0x2a9d0
jmp 0x2f802
leaq -0x50(%rbp), %rdi
callq 0x33c80
movq %rax, %rdi
addq $0x8, %rdi
leaq -0x58(%rbp), %rsi
movq %rsi, -0xd8(%rbp)
callq 0x8ee0
movq -0xd8(%rbp), %rdi
callq 0x8f10
movq -0x98(%rbp), %rdi
movl $0x2c, -0x5c(%rbp)
leaq -0x5c(%rbp), %rsi
callq 0x31240
movb %al, -0xc9(%rbp)
jmp 0x2f84d
movb -0xc9(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x2f85e
jmp 0x2f95f
movb $0x1, -0x82(%rbp)
movl $0x70, %edi
callq 0x7180
movq -0x98(%rbp), %rdi
movq %rax, -0xe8(%rbp)
xorl %esi, %esi
callq 0x277f0
movq %rax, -0xe0(%rbp)
jmp 0x2f88d
leaq -0x81(%rbp), %rdi
movq %rdi, -0xf0(%rbp)
callq 0x75f0
movq -0xf0(%rbp), %rdx
leaq 0x2928a(%rip), %rsi     # 0x58b38
leaq -0x80(%rbp), %rdi
callq 0xf990
jmp 0x2f8b9
movq -0xe0(%rbp), %rsi
movq -0xe8(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0xac90
jmp 0x2f8d2
movq -0xe8(%rbp), %rdi
movb $0x0, -0x82(%rbp)
leaq 0x59319(%rip), %rsi     # 0x88c00
leaq -0xf60e(%rip), %rdx     # 0x202e0
callq 0x75c0
jmp 0x2f9d7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2f9c5
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2f946
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2f93a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x80(%rbp), %rdi
callq 0x71d0
leaq -0x81(%rbp), %rdi
callq 0x7310
testb $0x1, -0x82(%rbp)
jne 0x2f951
jmp 0x2f95d
movq -0xe8(%rbp), %rdi
callq 0x7230
jmp 0x2f9c5
movq -0x98(%rbp), %rsi
leaq -0x90(%rbp), %rdi
callq 0x2c380
jmp 0x2f974
leaq -0x50(%rbp), %rdi
callq 0x33c80
movq %rax, %rdi
addq $0x10, %rdi
leaq -0x90(%rbp), %rsi
callq 0x8ee0
leaq -0x90(%rbp), %rdi
callq 0x8f10
movq -0xa8(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x33ca0
leaq -0x50(%rbp), %rdi
callq 0x33cf0
movq -0xa0(%rbp), %rax
addq $0xf0, %rsp
popq %rbp
retq
leaq -0x50(%rbp), %rdi
callq 0x33cf0
movq -0x18(%rbp), %rdi
callq 0x75e0
nopw (%rax,%rax)