// File: /workspace/github_cpp_makefile_star2_O1/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 0x1de4f(%rip), %rsi     # 0x2a164
leaq 0x1de4c(%rip), %rdx     # 0x2a168
movq %rsp, %r14
movq %r14, %rdi
callq 0xfc42
movq %r14, %rdi
callq 0xbac6
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xc345
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq 0x8(%rbx), %rdi
callq 0x179ac
movq 0x8(%rbx), %r14
cmpl $0x3, %eax
jne 0xc3f6
movq %rbx, %rdi
movl $0x3, %esi
callq 0xc558
movq 0x8(%rbx), %r15
movl $0x18, %edi
callq 0x8250
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x26484
movq (%rbx), %rax
leaq 0x80(%rsp), %r14
movq %r14, %rdi
movq %rbx, %rsi
callq *(%rax)
movq %r14, %rdi
callq 0xbd28
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc3c3
movq 0x90(%rsp), %rsi
incq %rsi
callq 0x8260
leaq 0x70(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1dd91(%rip), %rsi     # 0x2a164
leaq 0x1dd8e(%rip), %rdx     # 0x2a168
leaq 0x60(%rsp), %r14
movq %r14, %rdi
callq 0xfc42
movq %r14, %rdi
callq 0xbd28
movq 0x60(%rsp), %rdi
jmp 0xc468
movq %r14, %rdi
callq 0x179ac
cmpl $0x5, %eax
jne 0xc488
movq 0x8(%rbx), %r14
movq %rbx, %rdi
movl $0x5, %esi
callq 0xc558
movq 0x8(%rbx), %r15
movl $0x18, %edi
callq 0x8250
movq %rax, %rbx
movq %rax, %rdi
movq %r14, %rsi
movq %r15, %rdx
callq 0x26484
leaq 0x50(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1dd1d(%rip), %rsi     # 0x2a164
leaq 0x1dd1a(%rip), %rdx     # 0x2a168
leaq 0x40(%rsp), %r14
movq %r14, %rdi
callq 0xfc42
movq %r14, %rdi
callq 0xbd28
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xc478
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 0x1dcce(%rip), %rsi     # 0x2a169
leaq 0x1dcd4(%rip), %rdx     # 0x2a176
leaq 0x20(%rsp), %r14
movq %r14, %rdi
callq 0xfc42
movq %rbx, %rdi
movq %r14, %rsi
callq 0x16ebd
leaq 0x20(%rsp), %rdi
callq 0x8488
movl $0x1, %edi
callq 0x82e0
movq %rax, %r14
movq 0x20(%rsp), %rdi
cmpq %r15, %rdi
je 0xc550
movq 0x30(%rsp), %rsi
jmp 0xc548
movq %rax, %r14
movq 0x40(%rsp), %rdi
cmpq %r15, %rdi
je 0xc550
movq 0x50(%rsp), %rsi
jmp 0xc548
movq %rax, %r14
movq 0x60(%rsp), %rdi
cmpq %r15, %rdi
je 0xc550
movq 0x70(%rsp), %rsi
jmp 0xc548
jmp 0xc52a
movq %rax, %r14
leaq 0x90(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xc550
movq 0x90(%rsp), %rsi
jmp 0xc548
movq %rax, %r14
movl $0x18, %esi
movq %rbx, %rdi
jmp 0xc54b
movq %rax, %r14
movq (%rsp), %rdi
cmpq %r15, %rdi
je 0xc550
movq 0x10(%rsp), %rsi
incq %rsi
callq 0x8260
movq %r14, %rdi
callq 0x8420