// File: /workspace/github_c_makefile_star2_O0/MartinNovotny25[P]VUT-FIT-IFJ2020/parser.c
// Function: required_return
void required_return() {
    TDLLInitList(&psa_list);

    if (token.type == t_EOL) {error_call(ERR_SEM_RETURN, &tokens);}
    else {

        while (token.type != t_COMMA && token.type != t_EOL) {
            if ((token.type == t_PLUS)
                || (token.type == t_MINUS)
                || (token.type == t_DIVIDE)
                || (token.type == t_MULTIPLY)
                || (token.type == t_RIGHT_BRACKET)
                || (token.type == t_LEFT_BRACKET)
                || (token.type == t_LESS)
                || (token.type == t_LESSOREQUAL)
                || (token.type == t_GREATER)
                || (token.type == t_GREATEROREQUAL)
                || (token.type == t_EQUAL)
                || (token.type == t_NOT_EQUAL)
                || (token.type == t_IDENTIFIER)
                || (token.type == t_FLOAT)
                || (token.type == t_INT_NON_ZERO)
                || (token.type == t_INT_ZERO)
                || (token.type == t_STRING)){

                TDLLInsertLast(&psa_list, token);
                token = get_next_token(stdin);
                TDLLInsertLast(&tokens, token);

            } else { error_call(ERR_SYN, &tokens); }
        }

        evaluation(&psa_list, &tokens);
        TDLLDisposeList(&psa_list);

    }


    // Ak za returnom nasledujú dalsie return výrazy
    rule_exp_n();



    //mozné EOLy sa returnom
    if (token.type == t_EOL) {
        rule_eol();
    }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
leaq 0xbec9(%rip), %rdi      # 0x103d8
callq 0x1310
cmpl $0x2f, 0xbeb5(%rip)     # 0x103d0
jne 0x4533
movl $0x6, %edi
leaq 0xbe87(%rip), %rsi      # 0x103b0
callq 0x64e0
jmp 0x4692
jmp 0x4535
xorl %eax, %eax
cmpl $0x5, 0xbe92(%rip)      # 0x103d0
movb %al, -0x11(%rbp)
je 0x4550
cmpl $0x2f, 0xbe86(%rip)     # 0x103d0
setne %al
movb %al, -0x11(%rbp)
movb -0x11(%rbp), %al
testb $0x1, %al
jne 0x455c
jmp 0x4673
cmpl $0xa, 0xbe6d(%rip)      # 0x103d0
je 0x45fd
cmpl $0xb, 0xbe60(%rip)      # 0x103d0
je 0x45fd
cmpl $0x8, 0xbe53(%rip)      # 0x103d0
je 0x45fd
cmpl $0x9, 0xbe4a(%rip)      # 0x103d0
je 0x45fd
cmpl $0x7, 0xbe41(%rip)      # 0x103d0
je 0x45fd
cmpl $0x6, 0xbe38(%rip)      # 0x103d0
je 0x45fd
cmpl $0x1, 0xbe2f(%rip)      # 0x103d0
je 0x45fd
cmpl $0x1e, 0xbe26(%rip)     # 0x103d0
je 0x45fd
cmpl $0x2, 0xbe1d(%rip)      # 0x103d0
je 0x45fd
cmpl $0x1f, 0xbe14(%rip)     # 0x103d0
je 0x45fd
cmpl $0x20, 0xbe0b(%rip)     # 0x103d0
je 0x45fd
cmpl $0x21, 0xbe02(%rip)     # 0x103d0
je 0x45fd
cmpl $0x13, 0xbdf9(%rip)     # 0x103d0
je 0x45fd
cmpl $0x29, 0xbdf0(%rip)     # 0x103d0
je 0x45fd
cmpl $0x11, 0xbde7(%rip)     # 0x103d0
je 0x45fd
cmpl $0x10, 0xbdde(%rip)     # 0x103d0
je 0x45fd
cmpl $0x2b, 0xbdd5(%rip)     # 0x103d0
jne 0x465d
movq 0xbdc4(%rip), %rsi      # 0x103c8
movl 0xbdc6(%rip), %edx      # 0x103d0
leaq 0xbdc7(%rip), %rdi      # 0x103d8
callq 0x1450
movq 0xb9bb(%rip), %rax      # 0xffd8
movq (%rax), %rdi
callq 0x4840
movq %rax, -0x10(%rbp)
movl %edx, -0x8(%rbp)
movq -0x10(%rbp), %rax
movq %rax, 0xbd91(%rip)      # 0x103c8
movq -0x8(%rbp), %rax
movq %rax, 0xbd8e(%rip)      # 0x103d0
movq 0xbd7f(%rip), %rsi      # 0x103c8
movl 0xbd81(%rip), %edx      # 0x103d0
leaq 0xbd5a(%rip), %rdi      # 0x103b0
callq 0x1450
jmp 0x466e
movl $0x2, %edi
leaq 0xbd47(%rip), %rsi      # 0x103b0
callq 0x64e0
jmp 0x4535
leaq 0xbd5e(%rip), %rdi      # 0x103d8
leaq 0xbd2f(%rip), %rsi      # 0x103b0
callq 0xc860
leaq 0xbd4b(%rip), %rdi      # 0x103d8
callq 0x1340
callq 0x4190
cmpl $0x2f, 0xbd32(%rip)     # 0x103d0
jne 0x46a5
callq 0x43d0
addq $0x20, %rsp
popq %rbp
retq
nopl (%rax,%rax)