// File: /workspace/github_cpp_makefile_star2_O3/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 0x12884
cmpl $0x12, (%rax)
jne 0x1555d
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1528a
jmp 0x158ad
leaq 0x18(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0xb4f6(%rip), %rsi      # 0x20a63
leaq 0xb4f2(%rip), %rdx      # 0x20a66
leaq 0x8(%rsp), %rdi
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x155a6
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x155bb
movq %rbx, %rdi
movq %r14, %rsi
callq 0x15a74
jmp 0x158ad
movq %r14, %rdi
xorl %esi, %esi
callq 0x12884
cmpl $0x29, (%rax)
jne 0x155ee
incl 0x20(%r14)
movl $0x8, %edi
callq 0x6220
leaq 0x19709(%rip), %rcx     # 0x2ece8
addq $0x10, %rcx
movq %rcx, (%rax)
movq %rax, (%rbx)
jmp 0x158ad
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb499(%rip), %rsi      # 0x20a96
leaq 0xb494(%rip), %rdx      # 0x20a98
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15631
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15646
movq %rbx, %rdi
movq %r14, %rsi
callq 0x15dac
jmp 0x158ad
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb475(%rip), %rsi      # 0x20aca
leaq 0xb471(%rip), %rdx      # 0x20acd
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15689
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x1569e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16172
jmp 0x158ad
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb430(%rip), %rsi      # 0x20add
leaq 0xb42b(%rip), %rdx      # 0x20adf
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x156e1
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x156f6
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16514
jmp 0x158ad
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb3eb(%rip), %rsi      # 0x20af0
leaq 0xb3e9(%rip), %rdx      # 0x20af5
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15739
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x1574e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x168bc
jmp 0x158ad
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb454(%rip), %rsi      # 0x20bb1
leaq 0xb453(%rip), %rdx      # 0x20bb7
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15791
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x157a6
movq %rbx, %rdi
movq %r14, %rsi
callq 0x17840
jmp 0x158ad
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb093(%rip), %rsi      # 0x20848
leaq 0xb092(%rip), %rdx      # 0x2084e
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x157e9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x157fe
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16b46
jmp 0x158ad
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb04e(%rip), %rsi      # 0x2085b
leaq 0xb04f(%rip), %rdx      # 0x20863
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15841
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
testb %bpl, %bpl
je 0x15853
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16d8a
jmp 0x158ad
leaq 0x8(%rsp), %rdi
movq %r15, (%rdi)
leaq 0xb00e(%rip), %rsi      # 0x20870
leaq 0xb00c(%rip), %rdx      # 0x20875
callq 0xb1b4
leaq 0x8(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x129a2
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x15896
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
movq %rbx, %rdi
movq %r14, %rsi
testb %bpl, %bpl
je 0x158a8
callq 0x16f90
jmp 0x158ad
callq 0x15c96
movq %rbx, %rax
addq $0x28, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
jmp 0x158db
jmp 0x158f7
jmp 0x158db
jmp 0x158f7
jmp 0x158db
jmp 0x158f7
jmp 0x158db
jmp 0x158f7
jmp 0x158db
jmp 0x158f7
jmp 0x158db
jmp 0x158f7
jmp 0x158db
jmp 0x158f7
jmp 0x158db
jmp 0x158f7
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x158fa
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6230
jmp 0x158fa
movq %rax, %rbx
movq %rbx, %rdi
callq 0x6450