// File: Eronana[P]strawberry/src/parser.cpp
// Function: Parser::VariableStatement()
AST_PTR Parser::VariableStatement()
{
    if(!acceptEat("var"))PARSER_ERROR("expected a 'var'");
    DEF_AST_RET(VariableDeclarationList);
    do ret->nodes.push_back(VariableDeclaration());while(acceptEat(TOKEN_COMMA));
    if(!acceptEat(TOKEN_SEMICOLON))PARSER_ERROR("expected a ';'");
    RETURN_PTR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xf0, %rsp
movq %rdi, -0xa0(%rbp)
movq %rdi, %rax
movq %rax, -0x98(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x10(%rbp), %rdi
movq %rdi, -0x90(%rbp)
leaq 0x2bb39(%rip), %rsi     # 0x58a2f
callq 0x32c90
testb $0x1, %al
jne 0x2cfe7
movb $0x1, -0x42(%rbp)
movl $0x70, %edi
callq 0x7180
movq -0x90(%rbp), %rdi
movq %rax, -0xb0(%rbp)
xorl %esi, %esi
callq 0x277f0
movq %rax, -0xa8(%rbp)
jmp 0x2cf2f
leaq -0x41(%rbp), %rdi
movq %rdi, -0xb8(%rbp)
callq 0x75f0
movq -0xb8(%rbp), %rdx
leaq 0x2bae6(%rip), %rsi     # 0x58a33
leaq -0x40(%rbp), %rdi
callq 0xf990
jmp 0x2cf58
movq -0xa8(%rbp), %rsi
movq -0xb0(%rbp), %rdi
leaq -0x40(%rbp), %rdx
callq 0xac90
jmp 0x2cf71
movq -0xb0(%rbp), %rdi
movb $0x0, -0x42(%rbp)
leaq 0x5bc7d(%rip), %rsi     # 0x88c00
leaq -0xccaa(%rip), %rdx     # 0x202e0
callq 0x75c0
jmp 0x2d1ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2cfce
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2cfc5
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 0x2cfd6
jmp 0x2cfe2
movq -0xb0(%rbp), %rdi
callq 0x7230
jmp 0x2d1f6
movl $0x20, %edi
callq 0x72c0
movq %rax, %rdi
movq %rdi, -0xc0(%rbp)
callq 0x32d60
movq -0xc0(%rbp), %rsi
leaq -0x50(%rbp), %rdi
callq 0x32da0
leaq -0x50(%rbp), %rdi
callq 0x32dd0
movq -0x90(%rbp), %rsi
addq $0x8, %rax
movq %rax, -0xc8(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x2cca0
jmp 0x2d036
movq -0xc8(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x31320
jmp 0x2d048
leaq -0x58(%rbp), %rdi
callq 0x8f10
movq -0x90(%rbp), %rdi
movl $0x2a, -0x5c(%rbp)
leaq -0x5c(%rbp), %rsi
callq 0x31240
movb %al, -0xc9(%rbp)
jmp 0x2d070
movb -0xc9(%rbp), %al
testb $0x1, %al
jne 0x2d010
jmp 0x2d07c
movq -0x90(%rbp), %rdi
movl $0x29, -0x60(%rbp)
leaq -0x60(%rbp), %rsi
callq 0x31240
movb %al, -0xca(%rbp)
jmp 0x2d09b
movb -0xca(%rbp), %al
xorb $-0x1, %al
testb $0x1, %al
jne 0x2d0ac
jmp 0x2d1c4
movb $0x1, -0x82(%rbp)
movl $0x70, %edi
callq 0x7180
movq -0x90(%rbp), %rdi
movq %rax, -0xe0(%rbp)
xorl %esi, %esi
callq 0x277f0
movq %rax, -0xd8(%rbp)
jmp 0x2d0db
leaq -0x81(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x75f0
movq -0xe8(%rbp), %rdx
leaq 0x2b948(%rip), %rsi     # 0x58a44
leaq -0x80(%rbp), %rdi
callq 0xf990
jmp 0x2d107
movq -0xd8(%rbp), %rsi
movq -0xe0(%rbp), %rdi
leaq -0x80(%rbp), %rdx
callq 0xac90
jmp 0x2d120
movq -0xe0(%rbp), %rdi
movb $0x0, -0x82(%rbp)
leaq 0x5bacb(%rip), %rsi     # 0x88c00
leaq -0xce5c(%rip), %rdx     # 0x202e0
callq 0x75c0
jmp 0x2d1ff
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2d1ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x8f10
jmp 0x2d1ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2d1ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x18(%rbp)
movl %eax, -0x1c(%rbp)
jmp 0x2d19f
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 0x2d1b6
jmp 0x2d1c2
movq -0xe0(%rbp), %rdi
callq 0x7230
jmp 0x2d1ed
movq -0xa0(%rbp), %rdi
leaq -0x50(%rbp), %rsi
callq 0x32df0
leaq -0x50(%rbp), %rdi
callq 0x32e40
movq -0x98(%rbp), %rax
addq $0xf0, %rsp
popq %rbp
retq
leaq -0x50(%rbp), %rdi
callq 0x32e40
movq -0x18(%rbp), %rdi
callq 0x75e0
nop