// File: kiven-li[P]xbytes/xbytes.cpp
// Function: xbytes::xbytes::dump_symbol()
void xbytes::dump_symbol()
{
	std::cout << "==============SYMBOL============" << std::endl;
	std::cout << "COUNT	SYMBOL 		TYPE 	RCOUNT	NULL 	ASSOC 	PRECE" << std::endl;
	std::cout << "----------------------------" << std::endl;
	for(int i = 0; i < symbols.size(); ++i)
	{
		string type = symbols[i]->type == ST_TERMINAL ? "T" : "NT";
		string assoc = symbols[i]->associativity == AT_LEFT ? "L" : symbols[i]->associativity == AT_RIGHT ? "R" : "N";
		std::cout << i << "	" << symbols[i]->name << "		" << type << "	" << symbols[i]->rules.size() << "	" << symbols[i]->is_nullable << "	" << assoc << "	" << symbols[i]->precedence << std::endl;
	}
	std::cout << std::endl << std::endl;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x120, %rsp            # imm = 0x120
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
movq 0x1a05a(%rip), %rdi     # 0x23fd8
leaq 0xf645(%rip), %rsi      # 0x195ca
callq 0x32e0
movq %rax, %rdi
movq 0x1a034(%rip), %rsi     # 0x23fc8
callq 0x3320
movq 0x1a038(%rip), %rdi     # 0x23fd8
leaq 0xf644(%rip), %rsi      # 0x195eb
callq 0x32e0
movq %rax, %rdi
movq 0x1a012(%rip), %rsi     # 0x23fc8
callq 0x3320
movq 0x1a016(%rip), %rdi     # 0x23fd8
leaq 0xf651(%rip), %rsi      # 0x1961a
callq 0x32e0
movq %rax, %rdi
movq 0x19ff0(%rip), %rsi     # 0x23fc8
callq 0x3320
movl $0x0, -0xc(%rbp)
movq -0x78(%rbp), %rdi
movslq -0xc(%rbp), %rax
movq %rax, -0x80(%rbp)
addq $0x8, %rdi
callq 0xc4d0
movq %rax, %rcx
movq -0x80(%rbp), %rax
cmpq %rcx, %rax
jae 0xa35c
movq -0x78(%rbp), %rdi
addq $0x8, %rdi
movslq -0xc(%rbp), %rsi
callq 0xc4f0
movq (%rax), %rax
movl 0x48(%rax), %eax
subl $0x1, %eax
leaq 0xf9b0(%rip), %rcx      # 0x199da
leaq 0xf606(%rip), %rax      # 0x19637
cmoveq %rcx, %rax
movq %rax, -0x90(%rbp)
leaq -0x31(%rbp), %rdi
movq %rdi, -0x88(%rbp)
callq 0x34f0
movq -0x90(%rbp), %rsi
movq -0x88(%rbp), %rdx
leaq -0x30(%rbp), %rdi
callq 0x3830
jmp 0xa065
leaq -0x31(%rbp), %rdi
callq 0x3340
movq -0x78(%rbp), %rdi
addq $0x8, %rdi
movslq -0xc(%rbp), %rsi
callq 0xc4f0
movq (%rax), %rax
cmpl $0x1, 0xa4(%rax)
jne 0xa09b
leaq 0xf104(%rip), %rax      # 0x19196
movq %rax, -0x98(%rbp)
jmp 0xa0e6
movq -0x78(%rbp), %rdi
addq $0x8, %rdi
movslq -0xc(%rbp), %rsi
callq 0xc4f0
movq (%rax), %rax
cmpl $0x2, 0xa4(%rax)
jne 0xa0c8
leaq 0xf57b(%rip), %rax      # 0x1963a
movq %rax, -0xa0(%rbp)
jmp 0xa0d8
leaq 0xf56d(%rip), %rax      # 0x1963c
movq %rax, -0xa0(%rbp)
jmp 0xa0d8
movq -0xa0(%rbp), %rax
movq %rax, -0x98(%rbp)
movq -0x98(%rbp), %rax
movq %rax, -0xb0(%rbp)
leaq -0x69(%rbp), %rdi
movq %rdi, -0xa8(%rbp)
callq 0x34f0
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdx
leaq -0x68(%rbp), %rdi
callq 0x3830
jmp 0xa11d
leaq -0x69(%rbp), %rdi
callq 0x3340
movl -0xc(%rbp), %esi
movq 0x19ea8(%rip), %rdi     # 0x23fd8
callq 0x34d0
movq %rax, -0xb8(%rbp)
jmp 0xa13e
movq -0xb8(%rbp), %rdi
leaq 0xf4f3(%rip), %rsi      # 0x1963f
callq 0x32e0
movq %rax, -0xc0(%rbp)
jmp 0xa15a
movq -0x78(%rbp), %rdi
addq $0x8, %rdi
movslq -0xc(%rbp), %rsi
callq 0xc4f0
movq -0xc0(%rbp), %rdi
movq (%rax), %rsi
addq $0x8, %rsi
callq 0x3290
movq %rax, -0xc8(%rbp)
jmp 0xa187
movq -0xc8(%rbp), %rdi
leaq 0xf4a9(%rip), %rsi      # 0x1963e
callq 0x32e0
movq %rax, -0xd0(%rbp)
jmp 0xa1a3
movq -0xd0(%rbp), %rdi
leaq -0x30(%rbp), %rsi
callq 0x3290
movq %rax, -0xd8(%rbp)
jmp 0xa1bc
movq -0xd8(%rbp), %rdi
leaq 0xf475(%rip), %rsi      # 0x1963f
callq 0x32e0
movq %rax, -0xe0(%rbp)
jmp 0xa1d8
movq -0x78(%rbp), %rdi
addq $0x8, %rdi
movslq -0xc(%rbp), %rsi
callq 0xc4f0
movq (%rax), %rdi
addq $0x50, %rdi
callq 0xc510
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0x30a0
movq %rax, -0xe8(%rbp)
jmp 0xa20d
movq -0xe8(%rbp), %rdi
leaq 0xf424(%rip), %rsi      # 0x1963f
callq 0x32e0
movq %rax, -0xf0(%rbp)
jmp 0xa229
movq -0x78(%rbp), %rdi
addq $0x8, %rdi
movslq -0xc(%rbp), %rsi
callq 0xc4f0
movq -0xf0(%rbp), %rdi
movq (%rax), %rax
movzbl 0x68(%rax), %esi
andl $0x1, %esi
callq 0x3500
movq %rax, -0xf8(%rbp)
jmp 0xa259
movq -0xf8(%rbp), %rdi
leaq 0xf3d8(%rip), %rsi      # 0x1963f
callq 0x32e0
movq %rax, -0x100(%rbp)
jmp 0xa275
movq -0x100(%rbp), %rdi
leaq -0x68(%rbp), %rsi
callq 0x3290
movq %rax, -0x108(%rbp)
jmp 0xa28e
movq -0x108(%rbp), %rdi
leaq 0xf3a3(%rip), %rsi      # 0x1963f
callq 0x32e0
movq %rax, -0x110(%rbp)
jmp 0xa2aa
movq -0x78(%rbp), %rdi
addq $0x8, %rdi
movslq -0xc(%rbp), %rsi
callq 0xc4f0
movq -0x110(%rbp), %rdi
movq (%rax), %rax
movl 0xa0(%rax), %esi
callq 0x34d0
movq %rax, -0x118(%rbp)
jmp 0xa2d9
movq -0x118(%rbp), %rdi
movq 0x19ce1(%rip), %rsi     # 0x23fc8
callq 0x3320
jmp 0xa2ee
leaq -0x68(%rbp), %rdi
callq 0x31b0
leaq -0x30(%rbp), %rdi
callq 0x31b0
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x9fe4
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x31(%rbp), %rdi
callq 0x3340
jmp 0xa387
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x69(%rbp), %rdi
callq 0x3340
jmp 0xa351
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x40(%rbp)
movl %eax, -0x44(%rbp)
leaq -0x68(%rbp), %rdi
callq 0x31b0
leaq -0x30(%rbp), %rdi
callq 0x31b0
jmp 0xa387
movq 0x19c75(%rip), %rdi     # 0x23fd8
movq 0x19c5e(%rip), %rsi     # 0x23fc8
callq 0x3320
movq %rax, %rdi
movq 0x19c4f(%rip), %rsi     # 0x23fc8
callq 0x3320
addq $0x120, %rsp            # imm = 0x120
popq %rbp
retq
movq -0x40(%rbp), %rdi
callq 0x34e0