// File: /workspace/github_cpp_makefile_star2_O2/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 %r14
pushq %rbx
subq $0x30, %rsp
movq %rsi, %r14
movq %rdi, %rbx
pushq $0x12
popq %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
je 0x13455
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1319e
jmp 0x136ff
leaq 0xa5d7(%rip), %rsi      # 0x1da33
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
je 0x1349b
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1389c
jmp 0x136ff
leaq 0x10(%rsp), %rsi
movl $0x29, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x134d0
pushq $0x8
popq %rdi
callq 0x6230
leaq 0x1b82f(%rip), %rcx     # 0x2ecf0
addq $0x10, %rcx
movq %rcx, (%rax)
movq %rax, (%rbx)
jmp 0x136ff
leaq 0xa58f(%rip), %rsi      # 0x1da66
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
je 0x13516
movq %rbx, %rdi
movq %r14, %rsi
callq 0x13b82
jmp 0x136ff
leaq 0xa57d(%rip), %rsi      # 0x1da9a
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
je 0x1355c
movq %rbx, %rdi
movq %r14, %rsi
callq 0x13efa
jmp 0x136ff
leaq 0xa54a(%rip), %rsi      # 0x1daad
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
je 0x135a2
movq %rbx, %rdi
movq %r14, %rsi
callq 0x1427e
jmp 0x136ff
leaq 0xa517(%rip), %rsi      # 0x1dac0
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
je 0x135e8
movq %rbx, %rdi
movq %r14, %rsi
callq 0x145e8
jmp 0x136ff
leaq 0xa592(%rip), %rsi      # 0x1db81
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
je 0x1362e
movq %rbx, %rdi
movq %r14, %rsi
callq 0x153b0
jmp 0x136ff
leaq 0xa1e3(%rip), %rsi      # 0x1d818
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
je 0x13674
movq %rbx, %rdi
movq %r14, %rsi
callq 0x14846
jmp 0x136ff
leaq 0xa1b0(%rip), %rsi      # 0x1d82b
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
je 0x136b7
movq %rbx, %rdi
movq %r14, %rsi
callq 0x14a56
jmp 0x136ff
leaq 0xa182(%rip), %rsi      # 0x1d840
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
leaq 0x10(%rsp), %rsi
movq %r14, %rdi
xorl %edx, %edx
callq 0x10a96
movl %eax, %ebp
leaq 0x10(%rsp), %rdi
callq 0x6130
movq %rbx, %rdi
movq %r14, %rsi
testb %bpl, %bpl
je 0x136fa
callq 0x14c1a
jmp 0x136ff
callq 0x13a86
movq %rbx, %rax
addq $0x30, %rsp
popq %rbx
popq %r14
popq %rbp
retq
jmp 0x1372b
jmp 0x1373a
jmp 0x1372b
jmp 0x1373a
jmp 0x1372b
jmp 0x1373a
jmp 0x1372b
jmp 0x1373a
jmp 0x1372b
jmp 0x1373a
jmp 0x1372b
jmp 0x1373a
jmp 0x1372b
jmp 0x1373a
jmp 0x1372b
jmp 0x1373a
movq %rax, %rbx
leaq 0x10(%rsp), %rdi
callq 0x6130
jmp 0x1373d
movq %rax, %rbx
movq %rbx, %rdi
callq 0x6460
nop