// File: /workspace/github_cpp_makefile_star2_O3/martinda3[P]Compiler/src/TCparser.cpp
// Function: toyc::TCparser::Type()
AStype* TCparser::Type() // Functional Needs testing
	{
		// Type --> INT | CHAR
		TCtoken *t1, *t2;
		enteringDEBUG("Type");
		AStype* operand = NULL;
		if (buff->getTokenType() == INT)
		{
			t1 = buff;
			accept(INT);
			t2 = buff;
			operand = new AStype(t1, t2);
			exitingDEBUG(operand->toString());
			exitingDEBUG("Type");
		}
		else if (buff->getTokenType() == CHAR)
		{
			t1 = buff;
			accept(CHAR);
			t2 = buff;
			operand = new AStype(t1, t2);
			exitingDEBUG("Type");
		}
		else        // Error Handlding
		{
			reportSEMANTIC_ERROR(scanner, "type expected");
			exit(EXIT_FAILURE);
		}
		return operand;
	}

// Assembly:
pushq %r15
pushq %r14
pushq %rbx
subq $0xa0, %rsp
movq %rdi, %rbx
leaq 0x10(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1de5b(%rip), %rsi     # 0x2a164
leaq 0x1de58(%rip), %rdx     # 0x2a168
movq %rsp, %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbaaa
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xc339
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x8(%rbx), %rdi
callq 0x17fcc
movq 0x8(%rbx), %r14
cmpl $0x3, %eax
jne 0xc3ea
movq %rbx, %rdi
movl $0x3, %esi
callq 0xc54c
movq 0x8(%rbx), %r15
movl $0x18, %edi
callq 0x8250
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x26ad8
movq (%rbx), %rax
leaq 0x80(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq *(%rax)
movq %r14, %rdi
callq 0xbd0c
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc3b7
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x8260
leaq 0x70(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1dd9d(%rip), %rsi     # 0x2a164
leaq 0x1dd9a(%rip), %rdx     # 0x2a168
leaq 0x60(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbd0c
movq 0x60(%rsp), %rdi
jmp 0xc45c
movq %r14, %rdi
callq 0x17fcc
cmpl $0x5, %eax
jne 0xc47c
movq 0x8(%rbx), %r14
movq %rbx, %rdi
movl $0x5, %esi
callq 0xc54c
movq 0x8(%rbx), %r15
movl $0x18, %edi
callq 0x8250
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x26ad8
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1dd29(%rip), %rsi     # 0x2a164
leaq 0x1dd26(%rip), %rdx     # 0x2a168
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %r14, %rdi
callq 0xbd0c
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xc46c
movq (%r15), %rsi
incq %rsi
callq 0x8260
movq %rbx, %rax
addq $0xa0, %rsp
popq %rbx
popq %r14
popq %r15
retq
movq (%rbx), %rbx
leaq 0x30(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1dcda(%rip), %rsi     # 0x2a169
leaq 0x1dce0(%rip), %rdx     # 0x2a176
leaq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0xfc2a
movq %rbx, %rdi
movq %r14, %rsi
callq 0x174db
leaq 0x20(%rsp), %rdi
callq 0x8488
movl $0x1, %edi
callq 0x82e0
movq %rax, %r14
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xc544
movq 0x30(%rsp), %rsi
jmp 0xc53c
movq %rax, %r14
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xc544
movq 0x50(%rsp), %rsi
jmp 0xc53c
movq %rax, %r14
movq 0x60(%rsp), %rdi
cmpq %r15, %rdi
je 0xc544
movq 0x70(%rsp), %rsi
jmp 0xc53c
jmp 0xc51e
movq %rax, %r14
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc544
movq 0x90(%rsp), %rsi
jmp 0xc53c
movq %rax, %r14
movl $0x18, %esi
movq %rbx, %rdi
jmp 0xc53f
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xc544
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq %r14, %rdi
callq 0x8420