// File: Merulo[P]CompilerJFTT/src/SymbolTable.cpp
// Function: SymbolTable::print()
void SymbolTable::print()
{
    std::cerr<<"Variables:" <<std::endl;
    for(auto v : _variables)
    {
        std::cerr<<v.first<<" at="<<v.second.memoryCell<<" ";
        if (v.second.isInitialized)
        {
            std::cerr<<"is initialized ";
        }
        else
        {
            std::cerr<<"is not initialized ";
        }
        std::cerr<<std::endl;
    }
    std::cerr<<"Tables:" <<std::endl;
    for(auto t : _tables)
    {
        std::cerr<<t.first<<std::endl;
    }
}

// Assembly:
subq $0xf8, %rsp
movq %rdi, 0xf0(%rsp)
movq 0xf0(%rsp), %rax
movq %rax, 0x38(%rsp)
movq 0x4931d(%rip), %rdi     # 0x68ff0
leaq 0x316af(%rip), %rsi     # 0x51389
callq 0x4320
movq %rax, %rdi
movq 0x492a7(%rip), %rsi     # 0x68f90
callq 0x4380
movq 0x38(%rsp), %rax
addq $0x40, %rax
movq %rax, 0xe8(%rsp)
movq 0xe8(%rsp), %rdi
callq 0x21690
movq %rax, 0xe0(%rsp)
movq 0xe8(%rsp), %rdi
callq 0x216c0
movq %rax, 0xd8(%rsp)
leaq 0xe0(%rsp), %rdi
leaq 0xd8(%rsp), %rsi
callq 0x216f0
testb $0x1, %al
jne 0x1fd47
jmp 0x1fe57
leaq 0xe0(%rsp), %rdi
callq 0x21710
movq %rax, %rsi
leaq 0xa8(%rsp), %rdi
movq %rdi, 0x28(%rsp)
callq 0x21740
movq 0x28(%rsp), %rsi
movq 0x4927b(%rip), %rdi     # 0x68ff0
callq 0x42d0
movq %rax, 0x30(%rsp)
jmp 0x1fd81
movq 0x30(%rsp), %rdi
leaq 0x31607(%rip), %rsi     # 0x51394
callq 0x4320
movq %rax, 0x20(%rsp)
jmp 0x1fd99
movq 0x20(%rsp), %rdi
movq 0xd0(%rsp), %rsi
callq 0x42e0
movq %rax, 0x18(%rsp)
jmp 0x1fdb2
movq 0x18(%rsp), %rdi
leaq 0x327bf(%rip), %rsi     # 0x5257d
callq 0x4320
jmp 0x1fdc5
testb $0x1, 0xc8(%rsp)
je 0x1fe0c
movq 0x4921a(%rip), %rdi     # 0x68ff0
leaq 0x315bc(%rip), %rsi     # 0x51399
callq 0x4320
jmp 0x1fde4
jmp 0x1fe23
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0xa8(%rsp), %rdi
callq 0x21780
jmp 0x1ff60
movq 0x491dd(%rip), %rdi     # 0x68ff0
leaq 0x3158f(%rip), %rsi     # 0x513a9
callq 0x4320
jmp 0x1fe21
jmp 0x1fe23
movq 0x491c6(%rip), %rdi     # 0x68ff0
movq 0x4915f(%rip), %rsi     # 0x68f90
callq 0x4380
jmp 0x1fe38
leaq 0xa8(%rsp), %rdi
callq 0x21780
leaq 0xe0(%rsp), %rdi
callq 0x21790
jmp 0x1fd29
movq 0x49192(%rip), %rdi     # 0x68ff0
leaq 0x31558(%rip), %rsi     # 0x513bd
callq 0x4320
movq %rax, %rdi
movq 0x4911c(%rip), %rsi     # 0x68f90
callq 0x4380
movq 0x38(%rsp), %rax
addq $0x70, %rax
movq %rax, 0x90(%rsp)
movq 0x90(%rsp), %rdi
callq 0x217c0
movq %rax, 0x88(%rsp)
movq 0x90(%rsp), %rdi
callq 0x217f0
movq %rax, 0x80(%rsp)
leaq 0x88(%rsp), %rdi
leaq 0x80(%rsp), %rsi
callq 0x21820
testb $0x1, %al
jne 0x1fed2
jmp 0x1ff58
leaq 0x88(%rsp), %rdi
callq 0x21840
movq %rax, %rsi
leaq 0x40(%rsp), %rdi
movq %rdi, 0x8(%rsp)
callq 0x21870
movq 0x8(%rsp), %rsi
movq 0x490f3(%rip), %rdi     # 0x68ff0
callq 0x42d0
movq %rax, 0x10(%rsp)
jmp 0x1ff09
movq 0x10(%rsp), %rdi
movq 0x4907b(%rip), %rsi     # 0x68f90
callq 0x4380
jmp 0x1ff1c
leaq 0x40(%rsp), %rdi
callq 0x218c0
leaq 0x88(%rsp), %rdi
callq 0x218d0
jmp 0x1feb4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, 0xa0(%rsp)
movl %eax, 0x9c(%rsp)
leaq 0x40(%rsp), %rdi
callq 0x218c0
jmp 0x1ff60
addq $0xf8, %rsp
retq
movq 0xa0(%rsp), %rdi
callq 0x45f0
nopl (%rax)