// File: /workspace/github_cpp_makefile_star2_O3/navrajsaini[P]PL_Compiler_design_project/parser.cpp
// Function: Parse::Factor()
void Parse::Factor()//factor
{where="F";check();
   if(LHS=="num"||LHS=="false"||LHS=="true")
   {
      Const();
      gen.emit2("CONSTANT", tpVl);
      
   }else if(LHS=="id")
   {
      VarAc();
      gen.emit1("VALUE");
   }else if(LHS=="(")
   {
      match();
      Exp();
      if(LHS==")")
      {
	 match();
      }else
	 errorReport();
   }else if(LHS=="~")
   {
      gen.emit1("NOT");
      match();
      Factor();
   }else
      errorReport();
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x68, %rsp
movq %rdi, %rbx
addq $0x5098, %rdi           # imm = 0x5098
movq 0x50a0(%rbx), %rdx
leaq 0x3b45(%rip), %rcx      # 0x13894
movl $0x1, %r8d
xorl %esi, %esi
callq 0x22b0
movq %rbx, %rdi
callq 0xc3e8
leaq 0x5050(%rbx), %r14
leaq 0x354e(%rip), %rsi      # 0x132c0
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0xfe46
leaq 0x35da(%rip), %rsi      # 0x13363
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0xfe46
leaq 0x35c9(%rip), %rsi      # 0x13369
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0xfe46
leaq 0x3448(%rip), %rsi      # 0x131ff
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0xfea1
leaq 0x3502(%rip), %rsi      # 0x132d0
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0xfee3
leaq 0x3591(%rip), %rsi      # 0x13376
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
jne 0xff29
leaq -0x28(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x3aa1(%rip), %rsi      # 0x138a5
leaq 0x3a9d(%rip), %rdx      # 0x138a8
leaq -0x38(%rbp), %r14
movq %r14, %rdi
callq 0x42ea
leaq 0x50c0(%rbx), %rdi
movq %r14, %rsi
callq 0xaa68
movq -0x38(%rbp), %rdi
cmpq %r15, %rdi
je 0xfe34
callq 0x21b0
movq %rbx, %rdi
callq 0xc026
movq %rbx, %rdi
callq 0xfd2a
jmp 0xfe96
movq %rbx, %rdi
callq 0xda14
leaq -0x68(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x3a39(%rip), %rsi      # 0x13896
leaq 0x3a3a(%rip), %rdx      # 0x1389e
leaq -0x78(%rbp), %r14
movq %r14, %rdi
callq 0x42ea
movl 0x7228(%rbx), %edx
addq $0x50c0, %rbx           # imm = 0x50C0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xaae4
movq -0x78(%rbp), %rdi
cmpq %r15, %rdi
je 0xfe96
callq 0x21b0
addq $0x68, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
movq %rbx, %rdi
callq 0xee02
leaq -0x48(%rbp), %r15
movq %r15, -0x10(%r15)
leaq 0x39e7(%rip), %rsi      # 0x1389f
leaq 0x39e5(%rip), %rdx      # 0x138a4
leaq -0x58(%rbp), %r14
movq %r14, %rdi
callq 0x42ea
addq $0x50c0, %rbx           # imm = 0x50C0
movq %rbx, %rdi
movq %r14, %rsi
callq 0xaa68
movq -0x58(%rbp), %rdi
jmp 0xfe8c
leaq 0x5070(%rbx), %rdi
movq %r14, %rsi
callq 0x2100
movslq 0x2028(%rbx), %rsi
shlq $0x5, %rsi
addq %rbx, %rsi
movq %r14, %rdi
callq 0x2100
incl 0x2028(%rbx)
movq %rbx, %rdi
callq 0xf144
leaq 0x3562(%rip), %rsi      # 0x1347f
movq %r14, %rdi
callq 0x2080
testl %eax, %eax
je 0xff3b
movq %rbx, %rdi
addq $0x68, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xc18c
movq %rbx, %rdi
addq $0x68, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
jmp 0xc026
movq %rax, %rbx
movq -0x38(%rbp), %rdi
jmp 0xff66
movq %rax, %rbx
movq -0x58(%rbp), %rdi
jmp 0xff66
movq %rax, %rbx
movq -0x78(%rbp), %rdi
cmpq %r15, %rdi
je 0xff70
callq 0x21b0
movq %rbx, %rdi
callq 0x2310