// File: /workspace/github_cpp_makefile_star2_O2/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 0x3692
movq %rax, %rbx
leaq -0x40(%rbp), %r15
movq %r15, %rdi
movq %rax, %rsi
callq 0x36e6
leaq 0x62b(%rip), %rsi       # 0x70d3
movq %r15, %rdi
callq 0x2080
testl %eax, %eax
jne 0x6c04
movq %rbx, %rdi
callq 0x3746
pushq $0x20
popq %rdi
callq 0x2180
movq %rax, %r15
movq %rax, %rdi
callq 0x548c
movq %r15, (%r14)
movq %r15, %rdi
callq 0x55ae
leaq -0x60(%rbp), %rdi
movq %rbx, %rsi
callq 0x36e6
leaq -0x40(%rbp), %r15
leaq -0x60(%rbp), %r12
movq %r15, %rdi
movq %r12, %rsi
callq 0x21e0
movq %r12, %rdi
callq 0x20c0
leaq 0x5cf(%rip), %rsi       # 0x70db
movq %r15, %rdi
callq 0x2080
testl %eax, %eax
je 0x6b84
leaq 0x578(%rip), %rsi       # 0x7097
leaq -0x40(%rbp), %rdi
callq 0x2080
testl %eax, %eax
je 0x6b88
leaq 0x5ab(%rip), %rsi       # 0x70de
leaq -0x40(%rbp), %rdi
callq 0x2080
testl %eax, %eax
je 0x6b8c
leaq 0x599(%rip), %rsi       # 0x70e0
leaq -0x40(%rbp), %rdi
callq 0x2080
testl %eax, %eax
je 0x6b90
leaq 0x587(%rip), %rsi       # 0x70e2
leaq -0x40(%rbp), %rdi
callq 0x2080
testl %eax, %eax
je 0x6b94
leaq 0x576(%rip), %rsi       # 0x70e5
leaq -0x40(%rbp), %rdi
callq 0x2080
testl %eax, %eax
jne 0x6c57
pushq $0x6
jmp 0x6b96
pushq $0x1
jmp 0x6b96
pushq $0x2
jmp 0x6b96
pushq $0x3
jmp 0x6b96
pushq $0x4
jmp 0x6b96
pushq $0x5
popq %rax
movl %eax, 0x10(%r14)
movq %rbx, %rdi
callq 0x3746
pushq $0x20
popq %rdi
callq 0x2180
movq %rax, %r15
movq %rax, %rdi
callq 0x548c
movq %r15, 0x8(%r14)
movq %r15, %rdi
callq 0x55ae
leaq -0x60(%rbp), %rdi
movq %rbx, %rsi
callq 0x36e6
leaq -0x40(%rbp), %r14
leaq -0x60(%rbp), %r15
movq %r14, %rdi
movq %r15, %rsi
callq 0x21e0
movq %r15, %rdi
callq 0x20c0
leaq 0xa90(%rip), %rsi       # 0x7680
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
jne 0x6c1a
movq %rbx, %rdi
callq 0x3746
leaq -0x40(%rbp), %rdi
callq 0x20c0
addq $0x40, %rsp
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
movq 0x43b7(%rip), %rdi      # 0xafd8
leaq 0xe9a(%rip), %rsi       # 0x7ac2
callq 0x2170
movq %rax, %rdi
callq 0x20d0
movq 0x439c(%rip), %rdi      # 0xafd8
leaq 0x503(%rip), %rsi       # 0x7146
callq 0x2170
movq %rax, %rdi
callq 0x20d0
xorl %edi, %edi
callq 0x21d0
movq 0x437a(%rip), %rdi      # 0xafd8
leaq 0xe43(%rip), %rsi       # 0x7aa8
callq 0x2170
movq %rax, %rdi
callq 0x20d0
movq 0x435f(%rip), %rdi      # 0xafd8
leaq 0x4c6(%rip), %rsi       # 0x7146
callq 0x2170
movq %rax, %rdi
callq 0x20d0
jmp 0x6c50
jmp 0x6ca5
jmp 0x6c95
jmp 0x6ca5
movq %rax, %rbx
pushq $0x20
popq %rsi
movq %r15, %rdi
callq 0x2190
jmp 0x6ca8
movq %rax, %rbx
leaq -0x40(%rbp), %rdi
callq 0x20c0
movq %rbx, %rdi
callq 0x2290