// File: /workspace/github_c_makefile_star2_O2/MartinNovotny25[P]VUT-FIT-IFJ2020/parser.c
// Function: rule_exp_n
void rule_exp_n() {

    if (token.type == t_EOL)
    {
        return;

    } else if (token.type == t_BRACES_L) {
        return;
    } else if (token.type != t_COMMA) {error_call(ERR_SYN, &tokens);}
    else {
        token = get_next_token(stdin);
        TDLLInsertLast(&tokens, token);

        TDLLInitList(&psa_list);

        if (token.type == t_EOL) {error_call(ERR_SYN, &tokens);}
        else {

            while (token.type != t_COMMA && token.type != t_EOL && token.type != t_BRACES_L) {
                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);


            rule_exp_n();
        }
    }
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq 0x95d1(%rip), %r15      # 0xbfd8
leaq 0x99b2(%rip), %rbx      # 0xc3c0
leaq 0x99d3(%rip), %r14      # 0xc3e8
pushq $0x2
popq %rbp
movabsq $0xa03c00b0fc6, %r12    # imm = 0xA03C00B0FC6
movabsq $0x10800000000020, %r13 # imm = 0x10800000000020
movl 0x99ae(%rip), %eax      # 0xc3e0
cmpl $0x5, %eax
jne 0x2ae0
movq (%r15), %rdi
callq 0x2dbc
movq %rax, 0x998e(%rip)      # 0xc3d8
movl %edx, 0x9990(%rip)      # 0xc3e0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1345
movq %r14, %rdi
callq 0x12d4
movl 0x9977(%rip), %edx      # 0xc3e0
cmpl $0x2f, %edx
je 0x2af9
cmpl $0x34, %edx
ja 0x2abc
movl %edx, %eax
btq %rax, %r12
jae 0x2ab6
movq 0x9952(%rip), %rsi      # 0xc3d8
movq %r14, %rdi
callq 0x1345
movq (%r15), %rdi
callq 0x2dbc
movq %rax, 0x993b(%rip)      # 0xc3d8
movl %edx, 0x993d(%rip)      # 0xc3e0
movq %rbx, %rdi
movq %rax, %rsi
callq 0x1345
movl 0x992c(%rip), %edx      # 0xc3e0
jmp 0x2a72
btq %rax, %r13
jb 0x2ac8
movl %ebp, %edi
movq %rbx, %rsi
callq 0x3ac4
jmp 0x2aae
movq %r14, %rdi
movq %rbx, %rsi
callq 0x7282
movq %r14, %rdi
callq 0x12e0
jmp 0x2a2c
cmpl $0x2f, %eax
je 0x2aea
cmpl $0x34, %eax
jne 0x2af9
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
leaq 0x98c0(%rip), %rsi      # 0xc3c0
pushq $0x2
popq %rdi
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
jmp 0x3ac4