// File: /workspace/github_cpp_makefile_star2_O3/smallsimple[P]CoreInterpreter-CSE5341/Comp.cpp
// Function: Comp::ParseComp()
void Comp::ParseComp(){
  Tokenizer *tokensComp;
  tokensComp = Tokenizer::getInstance();
  string tokenTemp = tokensComp->getToken();
  if (tokenTemp.compare("(") == 0){
    tokensComp->skipToken();
    op1 = new Op();
    op1->ParseOp();
    tokenTemp = tokensComp->getToken();
    if (tokenTemp.compare("!=") == 0)
      alterId = 1;
    else if (tokenTemp.compare("==") == 0)
      alterId = 2;
    else if (tokenTemp.compare("<") == 0)
      alterId = 3;
    else if (tokenTemp.compare(">") == 0)
      alterId = 4;
    else if (tokenTemp.compare("<=") == 0)
      alterId = 5;
    else if (tokenTemp.compare(">=") == 0)
      alterId = 6;
    else {
      cout << "Error: Comp Op not found!" << endl;
      cout << "program stopped." << endl;
      exit(0);
    }
    tokensComp->skipToken();
    op2 = new Op();
    op2->ParseOp();
    tokenTemp = tokensComp->getToken();
    if (tokenTemp.compare(")") == 0){
      tokensComp->skipToken();
      return;
    }
    else {
      cout << "Error: ParseComp: \"(\" not found!" << endl;
      cout << "program stopped." << endl;
      exit(0);
    }
  }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
subq $0x40, %rsp
movq %rdi, %r14
callq 0x3c70
movq %rax, %rbx
leaq -0x40(%rbp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x3cc4
leaq 0x1133(%rip), %rsi      # 0x89dd
movq %r15, %rdi
callq 0x2090
testl %eax, %eax
jne 0x7a8e
movq %rbx, %rdi
callq 0x3da6
movl $0x20, %edi
callq 0x2190
movq %rax, %r15
movq %rax, %rdi
callq 0x5e4c
movq %r15, (%r14)
movq %r15, %rdi
callq 0x5f78
leaq -0x60(%rbp), %rdi
movq %rbx, %rsi
callq 0x3cc4
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %r15
movq %r15, %rsi
callq 0x2200
movq (%r15), %rdi
leaq -0x50(%rbp), %r12
cmpq %r12, %rdi
je 0x7916
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x21a0
leaq 0x11a3(%rip), %rsi      # 0x8ac0
leaq -0x40(%rbp), %rdi
callq 0x2090
testl %eax, %eax
je 0x79f4
leaq 0x762(%rip), %rsi       # 0x8097
leaq -0x40(%rbp), %rdi
callq 0x2090
testl %eax, %eax
je 0x79fb
leaq 0x1176(%rip), %rsi      # 0x8ac3
leaq -0x40(%rbp), %rdi
callq 0x2090
testl %eax, %eax
je 0x7a02
leaq 0x1160(%rip), %rsi      # 0x8ac5
leaq -0x40(%rbp), %rdi
callq 0x2090
testl %eax, %eax
je 0x7a09
leaq 0x114a(%rip), %rsi      # 0x8ac7
leaq -0x40(%rbp), %rdi
callq 0x2090
testl %eax, %eax
je 0x7a10
leaq 0x1135(%rip), %rsi      # 0x8aca
leaq -0x40(%rbp), %rdi
callq 0x2090
movl $0x6, %ecx
testl %eax, %eax
je 0x7a15
movq 0x462a(%rip), %rdi      # 0xbfd8
leaq 0x1118(%rip), %rsi      # 0x8acd
movl $0x19, %edx
callq 0x21d0
movq 0x4612(%rip), %rdi      # 0xbfd8
callq 0x20c0
movq 0x4606(%rip), %rdi      # 0xbfd8
leaq 0x741(%rip), %rsi       # 0x811a
movl $0x10, %edx
callq 0x21d0
movq 0x45ee(%rip), %rdi      # 0xbfd8
callq 0x20c0
jmp 0x7afc
movl $0x1, %ecx
jmp 0x7a15
movl $0x2, %ecx
jmp 0x7a15
movl $0x3, %ecx
jmp 0x7a15
movl $0x4, %ecx
jmp 0x7a15
movl $0x5, %ecx
movl %ecx, 0x10(%r14)
movq %rbx, %rdi
callq 0x3da6
movl $0x20, %edi
callq 0x2190
movq %rax, %r15
movq %rax, %rdi
callq 0x5e4c
movq %r15, 0x8(%r14)
movq %r15, %rdi
callq 0x5f78
leaq -0x60(%rbp), %rdi
movq %rbx, %rsi
callq 0x3cc4
leaq -0x40(%rbp), %rdi
leaq -0x60(%rbp), %r14
movq %r14, %rsi
callq 0x2200
movq (%r14), %rdi
cmpq %r12, %rdi
je 0x7a72
movq -0x50(%rbp), %rsi
incq %rsi
callq 0x21a0
leaq 0xc2d(%rip), %rsi       # 0x86a6
leaq -0x40(%rbp), %rdi
callq 0x2090
testl %eax, %eax
jne 0x7ab4
movq %rbx, %rdi
callq 0x3da6
leaq -0x30(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7aa7
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x21a0
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x451d(%rip), %rdi      # 0xbfd8
leaq 0x1025(%rip), %rsi      # 0x8ae7
movl $0x20, %edx
callq 0x21d0
movq 0x4505(%rip), %rdi      # 0xbfd8
callq 0x20c0
movq 0x44f9(%rip), %rdi      # 0xbfd8
leaq 0x634(%rip), %rsi       # 0x811a
movl $0x10, %edx
callq 0x21d0
movq 0x44e1(%rip), %rdi      # 0xbfd8
callq 0x20c0
xorl %edi, %edi
callq 0x21f0
jmp 0x7b1b
jmp 0x7b09
jmp 0x7b1b
movq %rax, %rbx
movl $0x20, %esi
movq %r15, %rdi
callq 0x21a0
jmp 0x7b1e
movq %rax, %rbx
leaq -0x30(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7b37
movq -0x30(%rbp), %rsi
incq %rsi
callq 0x21a0
movq %rbx, %rdi
callq 0x22a0