// File: /workspace/github_cpp_makefile_star2_O1/Blaze2305[P]Compiler-Design-2021-Assignment/src/SymTab/SymTab.cpp
// Function: SymbolTable::showSymbolTable()
void SymbolTable::showSymbolTable(){
	std::string line = std::string(70,'-');
	std::ostringstream out ;
	out<<line<<"\n";
	out<<std::setw(40)<<"SYMBOL TABLE\n\n";
	// out<<std::setw(15)<<"Symbol Name"<<std::setw(15)<<"Type"<<std::setw(15)<<"Value"<<std::setw(20)<<"Line Number\n";
	out<<std::setw(15)<<"Symbol Name"<<std::setw(15)<<"Type"<<std::setw(20)<<"Line Number\n";
	out<<line<<"\n";
	for(auto const& [key,value] : SymbolTableMap){
		// out<<std::setw(15)<<value.symbolName<<std::setw(15)<<value.type<<std::setw(15)<<value.attribute<<std::setw(20)<<value.lineNumber<<"\n";
		out<<std::setw(15)<<value.symbolName<<std::setw(15)<<value.type<<std::setw(20)<<value.lineNumber<<"\n";
	}
	out<<line<<"\n";
	std::cout<<out.str()<<std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x1b8, %rsp            # imm = 0x1B8
movq %rdi, %rbx
leaq -0x38(%rbp), %r13
movq %r13, -0x10(%r13)
leaq -0x48(%rbp), %rdi
movl $0x46, %esi
movl $0x2d, %edx
callq 0x2220
leaq -0x1e0(%rbp), %rdi
callq 0x2290
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x1e0(%rbp), %rdi
callq 0x2210
leaq 0x2087(%rip), %rsi      # 0xc3d2
movl $0x1, %edx
movq %rax, %rdi
callq 0x2210
leaq -0x1e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
movq $0x28, -0x1d0(%rbp,%rax)
leaq 0x204c(%rip), %rsi      # 0xc3c5
movl $0xe, %edx
callq 0x2210
leaq -0x1e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
movq $0xf, -0x1d0(%rbp,%rax)
leaq 0x2030(%rip), %rsi      # 0xc3d4
movl $0xb, %edx
callq 0x2210
leaq -0x1e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
movq $0xf, -0x1d0(%rbp,%rax)
leaq 0x1eb5(%rip), %rsi      # 0xc284
movl $0x4, %edx
callq 0x2210
leaq -0x1e0(%rbp), %rdi
movq (%rdi), %rax
movq -0x18(%rax), %rax
movq $0x14, -0x1d0(%rbp,%rax)
leaq 0x1fe6(%rip), %rsi      # 0xc3e0
movl $0xc, %edx
callq 0x2210
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x1e0(%rbp), %rdi
callq 0x2210
leaq 0x1fb3(%rip), %rsi      # 0xc3d2
movl $0x1, %edx
movq %rax, %rdi
callq 0x2210
movq 0x18(%rbx), %r14
addq $0x8, %rbx
cmpq %rbx, %r14
je 0xa4d5
leaq -0x1e0(%rbp), %r15
leaq 0x1f87(%rip), %r12      # 0xc3d2
movq -0x1e0(%rbp), %rax
movq -0x18(%rax), %rax
movq $0xf, -0x1d0(%rbp,%rax)
movq 0x40(%r14), %rsi
movq 0x48(%r14), %rdx
movq %r15, %rdi
callq 0x2210
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq $0xf, 0x10(%rax,%rcx)
movq 0x60(%r14), %rsi
movq 0x68(%r14), %rdx
movq %rax, %rdi
callq 0x2210
movq (%rax), %rcx
movq -0x18(%rcx), %rcx
movq $0x14, 0x10(%rax,%rcx)
movl 0xa0(%r14), %esi
movq %rax, %rdi
callq 0x2380
movl $0x1, %edx
movq %rax, %rdi
movq %r12, %rsi
callq 0x2210
movq %r14, %rdi
callq 0x2140
movq %rax, %r14
cmpq %rbx, %rax
jne 0xa44b
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
leaq -0x1e0(%rbp), %rdi
callq 0x2210
leaq 0x1ee2(%rip), %rsi      # 0xc3d2
movl $0x1, %edx
movq %rax, %rdi
callq 0x2210
leaq -0x1d8(%rbp), %rsi
leaq -0x68(%rbp), %rdi
callq 0x2310
movq -0x68(%rbp), %rsi
movq -0x60(%rbp), %rdx
movq 0x5ab4(%rip), %rdi      # 0xffd0
callq 0x2210
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x21b0
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x2130
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa564
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
movq 0x5a5d(%rip), %rsi      # 0xffc8
leaq -0x1e0(%rbp), %rdi
callq 0x2110
leaq -0x170(%rbp), %rdi
callq 0x20a0
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0xa598
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
addq $0x1b8, %rsp            # imm = 0x1B8
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0xa5d1
movq %rax, %rbx
jmp 0xa5f3
movq %rax, %rbx
leaq -0x58(%rbp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0xa5d4
movq -0x58(%rbp), %rsi
incq %rsi
callq 0x21e0
jmp 0xa5d4
jmp 0xa5d1
movq %rax, %rbx
movq 0x59ed(%rip), %rsi      # 0xffc8
leaq -0x1e0(%rbp), %rdi
callq 0x2110
leaq -0x170(%rbp), %rdi
callq 0x20a0
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0xa608
movq -0x38(%rbp), %rsi
incq %rsi
callq 0x21e0
movq %rbx, %rdi
callq 0x2390