// File: /workspace/github_cpp_makefile_star2_O2/Eronana[P]strawberry/src/parser.cpp
// Function: Parser::ArrayLiteral()
AST_PTR Parser::ArrayLiteral()
{
    if(!acceptEat(TOKEN_LEFT_SQUARE_BARCKET))PARSER_ERROR("exception a array literal start with '['");
    DEF_AST_RET(ArrayLiteral);
    while(!accept(TOKEN_RIGHT_SQUARE_BARCKET))
    {
        if(accept(TOKEN_COMMA))
        {
            ret->nodes.push_back(NullLiteral());
            eatToken();
        }
        else
        {
            ret->nodes.push_back(AssignmentExpression());
            if(!acceptEat(TOKEN_COMMA)&&!accept(TOKEN_RIGHT_SQUARE_BARCKET))PARSER_ERROR("excepted a ',' after array element");
        }
    }
    eatToken();
    RETURN_PTR;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x38, %rsp
movq %rsi, %r14
movq %rdi, 0x30(%rsp)
leaq 0x10(%rsp), %rsi
movl $0x10, (%rsi)
movq %r14, %rdi
callq 0x15a2a
testb %al, %al
je 0x11d0c
pushq $0x20
popq %rdi
callq 0x6230
movq %rax, %rbx
leaq 0x1c46b(%rip), %rax     # 0x2e038
addq $0x10, %rax
movq %rax, (%rbx)
leaq 0x8(%rbx), %r12
xorps %xmm0, %xmm0
andq $0x0, 0x18(%rbx)
movups %xmm0, 0x8(%rbx)
pushq $0x11
popq %rbp
pushq $0x2a
popq %r13
leaq 0x10(%rsp), %r15
movq %r14, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x11cf1
movq %r14, %rdi
movl %r13d, %esi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
je 0x11c41
movq %r15, %rdi
movq %r14, %rsi
callq 0x117b2
movq %r12, %rdi
movq %r15, %rsi
callq 0x15f76
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x11c3b
movq (%rdi), %rax
callq *0x28(%rax)
incl 0x20(%r14)
jmp 0x11bf0
movq %r15, %rdi
movq %r14, %rsi
callq 0x11804
movq %r12, %rdi
movq %r15, %rsi
callq 0x15f76
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x11c67
movq (%rdi), %rax
callq *0x28(%rax)
movl $0x2a, 0x10(%rsp)
movq %r14, %rdi
movq %r15, %rsi
callq 0x15a2a
testb %al, %al
jne 0x11bf0
movq %r14, %rdi
movl %ebp, %esi
xorl %edx, %edx
callq 0x10aae
testb %al, %al
jne 0x11bf0
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %r15
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xbbeb(%rip), %rsi      # 0x1d8a0
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x10(%rsp), %rdx
movq %r15, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1bf60(%rip), %rsi     # 0x2dc40
leaq -0x2fdf(%rip), %rdx     # 0xed08
movq %r15, %rdi
callq 0x6450
jmp 0x11d65
incl 0x20(%r14)
movq 0x30(%rsp), %rax
movq %rbx, (%rax)
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
pushq $0x70
popq %rdi
callq 0x6150
movq %rax, %rbx
movq %r14, %rdi
xorl %esi, %esi
callq 0x109e0
movq %rax, %r14
leaq 0xbb4c(%rip), %rsi      # 0x1d877
leaq 0x10(%rsp), %rdi
leaq 0xf(%rsp), %rdx
callq 0x9c4a
movb $0x1, %bpl
leaq 0x10(%rsp), %rdx
movq %rbx, %rdi
movq %r14, %rsi
callq 0x79f8
xorl %ebp, %ebp
leaq 0x1beea(%rip), %rsi     # 0x2dc40
leaq -0x3055(%rip), %rdx     # 0xed08
movq %rbx, %rdi
callq 0x6450
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x11d7e
jmp 0x11dd4
jmp 0x11d7b
movq %rax, %r14
movq %rbx, %rdi
callq 0x61d0
jmp 0x11dd4
movq %rax, %r14
leaq 0x10(%rsp), %rdi
callq 0x6130
testb %bpl, %bpl
jne 0x11da1
jmp 0x11dcb
jmp 0x11d9e
movq %rax, %r14
movq %r15, %rdi
callq 0x61d0
jmp 0x11dcb
jmp 0x11dc8
jmp 0x11dc8
jmp 0x11db1
movq %rax, %r14
movq 0x10(%rsp), %rdi
testq %rdi, %rdi
je 0x11dcb
movq (%rdi), %rax
callq *0x28(%rax)
jmp 0x11dcb
jmp 0x11dc8
movq %rax, %r14
movq (%rbx), %rax
movq %rbx, %rdi
callq *0x28(%rax)
movq %r14, %rdi
callq 0x6460