// File: /workspace/github_c_makefile_star2_O0/g3ida[P]g3idaCompiler/parse.c
// Function: expr
exprType expr(void)
{
    exprType tlhs, trhs;
    Symbole op;
    tlhs = simple_expr();
    op = token;
    if ((token==LT)||(token==EQ)||(token==NEQ)|| (token==LTE) || (token==GT) || (token==GTE)) {
        accepter(token);
        trhs = simple_expr();
        if(trhs != tlhs && tlhs !=TypeError) {
            ERROR_MSG("type misaccepter cannot convert %s to %s\n", typeToStr(trhs), typeToStr(tlhs));

         tlhs = TypeError;
        }

        switch(op) {
        case LT:
            EMETTRE("comparer-si-inf\n");
            CONDITION_FLAG = 0;
            break;
        case GT:
            EMETTRE("comparer-si-sup\n");
            CONDITION_FLAG = 0;
            break;
        case EQ:
            EMETTRE( "comparer-si-egal\n");
            CONDITION_FLAG = 0;
            break;
        case LTE:
            EMETTRE("comparer-si-sup\n");
            CONDITION_FLAG = 1;
            break;
        case GTE:
            EMETTRE("comparer-si-inf\n");
            CONDITION_FLAG = 1;
            break;
        case NEQ:
            EMETTRE( "comparer-si-egal\n");
            CONDITION_FLAG = 1;
            break;
        default:
            break;
        }
        tlhs = Boolean;
    }
    return tlhs;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
callq 0x21c0
movl %eax, -0x4(%rbp)
movl 0x4b7e(%rip), %eax      # 0x6b64
movl %eax, -0xc(%rbp)
cmpl $0x15, 0x4b74(%rip)     # 0x6b64
je 0x2023
cmpl $0x13, 0x4b6b(%rip)     # 0x6b64
je 0x2023
cmpl $0x14, 0x4b62(%rip)     # 0x6b64
je 0x2023
cmpl $0x17, 0x4b59(%rip)     # 0x6b64
je 0x2023
cmpl $0x16, 0x4b50(%rip)     # 0x6b64
je 0x2023
cmpl $0x18, 0x4b47(%rip)     # 0x6b64
jne 0x21ab
movl 0x4b3b(%rip), %edi      # 0x6b64
callq 0x1490
callq 0x21c0
movl %eax, -0x8(%rbp)
movl -0x8(%rbp), %eax
cmpl -0x4(%rbp), %eax
je 0x20ad
cmpl $0x4, -0x4(%rbp)
je 0x20ad
leaq 0x4055(%rip), %rax      # 0x60a0
movl (%rax), %esi
leaq 0x2079(%rip), %rdi      # 0x40cd
movb $0x0, %al
callq 0x1080
movl -0x8(%rbp), %edi
callq 0x13c0
movq %rax, -0x18(%rbp)
movl -0x4(%rbp), %edi
callq 0x13c0
movq -0x18(%rbp), %rsi
movq %rax, %rdx
leaq 0x2138(%rip), %rdi      # 0x41b5
movb $0x0, %al
callq 0x1080
leaq 0x4159(%rip), %rax      # 0x61e4
movl (%rax), %ecx
addl $0x1, %ecx
leaq 0x414d(%rip), %rax      # 0x61e4
movl %ecx, (%rax)
leaq 0x4140(%rip), %rax      # 0x61e0
movl $0x1, (%rax)
movl $0x4, -0x4(%rbp)
movl -0xc(%rbp), %eax
addl $-0x13, %eax
movl %eax, %ecx
movq %rcx, -0x20(%rbp)
subl $0x5, %eax
ja 0x21a2
movq -0x20(%rbp), %rax
leaq 0x1fbb(%rip), %rcx      # 0x4088
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq 0x4a7b(%rip), %rdi      # 0x6b58
leaq 0x20fb(%rip), %rsi      # 0x41df
movb $0x0, %al
callq 0x10b0
movl $0x0, 0x4a6b(%rip)      # 0x6b60
jmp 0x21a4
movq 0x4a57(%rip), %rdi      # 0x6b58
leaq 0x20e8(%rip), %rsi      # 0x41f0
movb $0x0, %al
callq 0x10b0
movl $0x0, 0x4a47(%rip)      # 0x6b60
jmp 0x21a4
movq 0x4a33(%rip), %rdi      # 0x6b58
leaq 0x20d5(%rip), %rsi      # 0x4201
movb $0x0, %al
callq 0x10b0
movl $0x0, 0x4a23(%rip)      # 0x6b60
jmp 0x21a4
movq 0x4a12(%rip), %rdi      # 0x6b58
leaq 0x20a3(%rip), %rsi      # 0x41f0
movb $0x0, %al
callq 0x10b0
movl $0x1, 0x4a02(%rip)      # 0x6b60
jmp 0x21a4
movq 0x49f1(%rip), %rdi      # 0x6b58
leaq 0x2071(%rip), %rsi      # 0x41df
movb $0x0, %al
callq 0x10b0
movl $0x1, 0x49e1(%rip)      # 0x6b60
jmp 0x21a4
movq 0x49d0(%rip), %rdi      # 0x6b58
leaq 0x2072(%rip), %rsi      # 0x4201
movb $0x0, %al
callq 0x10b0
movl $0x1, 0x49c0(%rip)      # 0x6b60
jmp 0x21a4
jmp 0x21a4
movl $0x3, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)