// File: /workspace/github_c_makefile_star2_O1/masyagin1998[P]GCI/src/parser/parser.c
// Function: parser_parse
enum PARSER_CODES parser_parse(parser_type_t parser, struct UNIT_AST**unit)
{
    enum PARSER_CODES r;
    lexer_next_token(parser->lexer, &(parser->tok));
    r = unit_ast_read(parser, unit);
    token_free(parser->tok);
    return r;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x48, %rsp
movq %rsi, 0x28(%rsp)
movq %rdi, %r13
movq (%rdi), %rdi
leaq 0x8(%r13), %rbp
movq %rbp, %rsi
callq 0x45b5
xorl %r12d, %r12d
xorl %r15d, %r15d
xorl %r14d, %r14d
movq %rbp, 0x8(%rsp)
movq (%rbp), %rdi
movl (%rdi), %eax
cmpl $0x26, %eax
je 0x59a4
movq %r14, 0x20(%rsp)
testl %eax, %eax
je 0x56a2
movl $0x1, %esi
movq %r13, %rdi
xorl %edx, %edx
xorl %eax, %eax
callq 0x5bec
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
jmp 0x5904
callq 0x53b0
movq (%r13), %rdi
movq %rbp, %rsi
callq 0x45b5
movq %r13, %rdi
leaq 0x40(%rsp), %rsi
callq 0x5cbc
testl %eax, %eax
je 0x56cb
movl %eax, %ebx
jmp 0x5904
movq (%rbp), %rdi
cmpl $0x1b, (%rdi)
jne 0x56f5
callq 0x53b0
movq (%r13), %rdi
movq %rbp, %rsi
callq 0x45b5
movq 0x8(%r13), %rax
cmpl $0x1c, (%rax)
jne 0x5713
xorl %ebp, %ebp
jmp 0x587a
movl $0x1, %esi
movq %r13, %rdi
movl $0x1b, %edx
xorl %eax, %eax
callq 0x5bec
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
jmp 0x58fa
movq %r13, %rdi
leaq 0x10(%rsp), %rsi
callq 0x5cbc
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testl %eax, %eax
je 0x5732
xorl %ebp, %ebp
xorl %eax, %eax
jmp 0x5872
movl $0x8, %edi
callq 0x1130
testq %rax, %rax
je 0x59fa
movq %r13, 0x30(%rsp)
movq 0x10(%rsp), %rcx
movq %rcx, (%rax)
movq (%rbp), %rdi
movl $0x1, %r14d
cmpl $0x22, (%rdi)
movq %r12, 0x38(%rsp)
jne 0x581d
movl $0x1, %r13d
movq 0x8(%rsp), %r12
movq %r15, 0x18(%rsp)
movq %rax, %r15
callq 0x53b0
movq 0x30(%rsp), %rbp
movq (%rbp), %rdi
movq %r12, %rsi
callq 0x45b5
movq %rbp, %rdi
leaq 0x10(%rsp), %rsi
callq 0x5cbc
testl %eax, %eax
jne 0x583e
cmpq %r13, %r14
jne 0x57d7
testq %r13, %r13
je 0x57e1
movq %r13, %r12
shlq $0x4, %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x1160
testq %rax, %rax
movq 0x18(%rsp), %r15
je 0x59ed
addq %r13, %r13
jmp 0x57ff
movq %r15, %rax
movq 0x18(%rsp), %r15
jmp 0x57ff
movl $0x8, %edi
callq 0x1130
testq %rax, %rax
movq 0x18(%rsp), %r15
je 0x59f5
movl $0x1, %r13d
movq 0x10(%rsp), %rcx
movq %rcx, (%rax,%r14,8)
incq %r14
movq 0x8(%rsp), %r12
movq (%r12), %rdi
cmpl $0x22, (%rdi)
je 0x577a
movq 0x18(%rdi), %rdx
movq 0x20(%rdi), %rcx
movq %rax, %rdi
movq %r14, %rsi
callq 0x84a9
movq %rax, %rbp
xorl %ebx, %ebx
movb $0x1, %al
movq 0x38(%rsp), %r12
jmp 0x586d
testq %r14, %r14
je 0x5857
xorl %r12d, %r12d
movq (%r15,%r12,8), %rdi
callq 0x841c
incq %r12
cmpq %r12, %r14
jne 0x5846
movq %r15, %rdi
callq 0x1030
xorl %ebp, %ebp
xorl %eax, %eax
movq 0x38(%rsp), %r12
movq 0x18(%rsp), %r15
movq 0x30(%rsp), %r13
testb %al, %al
je 0x58fa
movq 0x8(%rsp), %rbx
movq (%rbx), %rdi
cmpl $0x1c, (%rdi)
jne 0x58d4
callq 0x53b0
movq (%r13), %rdi
movq %rbx, %rsi
callq 0x45b5
movq %r13, %rdi
leaq 0x10(%rsp), %rsi
callq 0x5d26
movl %eax, %ebx
testl %eax, %eax
jne 0x58ed
movq 0x40(%rsp), %rdi
movq 0x10(%rsp), %rdx
movq 0x8(%rsp), %rax
movq (%rax), %rax
movq 0x18(%rax), %rcx
movq 0x20(%rax), %r8
movq %rbp, %rsi
callq 0x8285
movq %rax, %rbp
xorl %ebx, %ebx
jmp 0x5906
movl $0x1, %esi
movq %r13, %rdi
movl $0x1c, %edx
xorl %eax, %eax
callq 0x5bec
movl $0xffffffff, %ebx       # imm = 0xFFFFFFFF
testq %rbp, %rbp
je 0x58fa
movq %rbp, %rdi
callq 0x8421
movq 0x40(%rsp), %rdi
callq 0x841c
xorl %ebp, %ebp
movq 0x20(%rsp), %r14
testl %ebx, %ebx
jne 0x595f
cmpq %r14, %r15
jne 0x5958
testq %r14, %r14
je 0x593c
movq %r12, %rdi
movq %r14, %r12
shlq $0x4, %r12
movq %r12, %rsi
callq 0x1160
testq %rax, %rax
je 0x59e0
addq %r14, %r14
movq %rax, %r12
jmp 0x5958
movl $0x8, %edi
callq 0x1130
testq %rax, %rax
je 0x59e8
movq %rax, %r12
movl $0x1, %r14d
movq %rbp, (%r12,%r15,8)
incq %r15
testl %ebx, %ebx
movq 0x8(%rsp), %rbp
je 0x566f
testq %r12, %r12
je 0x59bb
testq %r15, %r15
movq 0x28(%rsp), %r13
movq %r12, %rbp
je 0x5993
xorl %r12d, %r12d
movq (%rbp,%r12,8), %rdi
callq 0x8259
incq %r12
cmpq %r12, %r15
jne 0x5981
movq %rbp, %rdi
callq 0x1030
xorl %eax, %eax
movq 0x8(%rsp), %rbp
jmp 0x59c2
movq 0x18(%rdi), %rdx
movq 0x20(%rdi), %rcx
movq %r12, %rdi
movq %r15, %rsi
callq 0x8150
xorl %ebx, %ebx
jmp 0x59bd
xorl %eax, %eax
movq 0x28(%rsp), %r13
movq %rax, (%r13)
movq (%rbp), %rdi
callq 0x53b0
movl %ebx, %eax
addq $0x48, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %r12, %rdi
callq 0x16ab
callq 0x16db
movq %r12, %rdi
callq 0x1619
callq 0x1649
callq 0x167a