// File: /workspace/github_cpp_makefile_star2_O1/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::Statement()
AST_PTR Parser::Statement()
{
    if(accept(TOKEN_LEFT_BARCKET)) return Block();
    else if(accept("var"))return VariableStatement();
    else if(acceptEat(TOKEN_SEMICOLON))return AST_PTR(new AST_NAME(EmptyStatement));
    else if(accept("if"))return IfStatement();
    else if(accept("for"))return ForStatement();
    else if(accept("do"))return DoStatement();
    else if(accept("while"))return WhileStatement();
    else if(accept("switch"))return SwitchStatement();
    else if(accept("return"))return ReturnStatement();
    else if(accept("continue"))return ContinueStatement();
    else if(accept("break"))return BreakStatement();
    else return ExpressionStatement();
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x28, %rsp
movq %rsi, %r14
movq %rdi, %rbx
movq %rsi, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x12, (%rax)
jne 0x1593d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x15648
jmp 0x15c8d
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xb116(%rip), %rsi      # 0x20a63
leaq 0xb112(%rip), %rdx      # 0x20a66
leaq 0x8(%rsp), %rdi
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15986
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x1599b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x15e6e
jmp 0x15c8d
movq %r14, %rdi
xorl %esi, %esi
callq 0x1288c
cmpl $0x29, (%rax)
jne 0x159ce
incl 0x20(%r14)
movl $0x8, %edi
callq 0x6220
leaq 0x19329(%rip), %rcx     # 0x2ece8
addq $0x10, %rcx
movq %rcx, (%rax)
movq %rax, (%rbx)
jmp 0x15c8d
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb0b9(%rip), %rsi      # 0x20a96
leaq 0xb0b4(%rip), %rdx      # 0x20a98
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15a11
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15a26
movq %rbx, %rdi
movq %r14, %rsi
callq 0x161ce
jmp 0x15c8d
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb095(%rip), %rsi      # 0x20aca
leaq 0xb091(%rip), %rdx      # 0x20acd
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15a69
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15a7e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x165a2
jmp 0x15c8d
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb050(%rip), %rsi      # 0x20add
leaq 0xb04b(%rip), %rdx      # 0x20adf
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15ac1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15ad6
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1695a
jmp 0x15c8d
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb00b(%rip), %rsi      # 0x20af0
leaq 0xb009(%rip), %rdx      # 0x20af5
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15b19
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15b2e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16d10
jmp 0x15c8d
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb074(%rip), %rsi      # 0x20bb1
leaq 0xb073(%rip), %rdx      # 0x20bb7
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15b71
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15b86
movq %rbx, %rdi
movq %r14, %rsi
callq 0x17dc8
jmp 0x15c8d
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xacb3(%rip), %rsi      # 0x20848
leaq 0xacb2(%rip), %rdx      # 0x2084e
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15bc9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15bde
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16fb4
jmp 0x15c8d
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xac6e(%rip), %rsi      # 0x2085b
leaq 0xac6f(%rip), %rdx      # 0x20863
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15c21
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15c33
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1721c
jmp 0x15c8d
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xac2e(%rip), %rsi      # 0x20870
leaq 0xac2c(%rip), %rdx      # 0x20875
callq 0xb1a2
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129aa
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15c76
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
movq %rbx, %rdi
movq %r14, %rsi
testb %bpl, %bpl
je 0x15c88
callq 0x1743e
jmp 0x15c8d
callq 0x1609e
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x15cbb
jmp 0x15cd7
jmp 0x15cbb
jmp 0x15cd7
jmp 0x15cbb
jmp 0x15cd7
jmp 0x15cbb
jmp 0x15cd7
jmp 0x15cbb
jmp 0x15cd7
jmp 0x15cbb
jmp 0x15cd7
jmp 0x15cbb
jmp 0x15cd7
jmp 0x15cbb
jmp 0x15cd7
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15cda
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x15cda
movq %rax, %rbx
movq %rbx, %rdi
callq 0x6450