// File: Nallantli[P]Rossa/main/rossa/parser/parser.cpp
// Function: parser_t::runCode(std::shared_ptr<Node> const&, bool const&)
const symbol_t parser_t::runCode(const ptr_node_t &entry, const bool &tree)
{
	if (tree)
	{
		entry->printTree("", true);
		for (auto &c : consts)
		{
			int i = 0;
			for (auto &p : c.first)
			{
				if (i++ > 0)
				{
					printc(".", CYAN_TEXT);
				}
				printc(ROSSA_DEHASH(p), CYAN_TEXT);
			}
			std::cout << " = ";
			printc(c.second.toCodeString(), CYAN_TEXT);
			std::cout << "\n";
		}
	}

	auto g = node_parser_t::genParser(entry);

	trace_t stack_trace;
	return g->evaluate(&main, stack_trace);
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x190, %rsp            # imm = 0x190
movq %rdi, -0x158(%rbp)
movq %rdi, %rax
movq %rax, -0x150(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq %rax, -0x148(%rbp)
movq -0x20(%rbp), %rax
testb $0x1, (%rax)
je 0x2b800
movq -0x18(%rbp), %rdi
callq 0x2d030
movq %rax, -0x168(%rbp)
leaq -0x41(%rbp), %rdi
movq %rdi, -0x160(%rbp)
callq 0x119d0
movq -0x160(%rbp), %rdx
leaq 0x124c70(%rip), %rsi    # 0x150192
leaq -0x40(%rbp), %rdi
callq 0x24740
jmp 0x2b52d
movq -0x168(%rbp), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
leaq -0x40(%rbp), %rsi
movl $0x1, %edx
callq *%rax
jmp 0x2b548
leaq -0x40(%rbp), %rdi
callq 0x11360
leaq -0x41(%rbp), %rdi
callq 0x11600
movq -0x148(%rbp), %rax
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
callq 0x2d0f0
movq %rax, -0x68(%rbp)
movq -0x60(%rbp), %rdi
callq 0x2d120
movq %rax, -0x70(%rbp)
leaq -0x68(%rbp), %rdi
leaq -0x70(%rbp), %rsi
callq 0x2d150
testb $0x1, %al
jne 0x2b595
jmp 0x2b7fe
leaq -0x68(%rbp), %rdi
callq 0x2d190
movq %rax, -0x78(%rbp)
movl $0x0, -0x7c(%rbp)
movq -0x78(%rbp), %rax
movq %rax, -0x88(%rbp)
movq -0x88(%rbp), %rdi
callq 0x2d1b0
movq %rax, -0x90(%rbp)
movq -0x88(%rbp), %rdi
callq 0x2d1e0
movq %rax, -0x98(%rbp)
leaq -0x90(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x2d210
testb $0x1, %al
jne 0x2b5f6
jmp 0x2b767
leaq -0x90(%rbp), %rdi
callq 0x2d250
movq %rax, -0xa0(%rbp)
movl -0x7c(%rbp), %eax
movl %eax, %ecx
addl $0x1, %ecx
movl %ecx, -0x7c(%rbp)
cmpl $0x0, %eax
jle 0x2b6ed
leaq -0xc1(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x119d0
movq -0x170(%rbp), %rdx
leaq 0x124d4a(%rip), %rsi    # 0x150388
leaq -0xc0(%rbp), %rdi
callq 0x24740
jmp 0x2b64c
movl $0x24, -0xc8(%rbp)
leaq -0xc0(%rbp), %rdi
leaq -0xc8(%rbp), %rsi
callq 0x247f0
jmp 0x2b66b
leaq -0xc0(%rbp), %rdi
callq 0x11360
leaq -0xc1(%rbp), %rdi
callq 0x11600
jmp 0x2b6ed
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x2b6a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x11360
leaq -0x41(%rbp), %rdi
callq 0x11600
jmp 0x2b8a8
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
jmp 0x2b6dc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xc0(%rbp), %rdi
callq 0x11360
leaq -0xc1(%rbp), %rdi
callq 0x11600
jmp 0x2b8a8
movq -0xa0(%rbp), %rdx
leaq 0x1ba39d(%rip), %rsi    # 0x1e5a98
leaq -0xe8(%rbp), %rdi
movq %rdi, -0x178(%rbp)
callq 0x2d270
movq -0x178(%rbp), %rdi
movl $0x24, -0xec(%rbp)
leaq -0xec(%rbp), %rsi
callq 0x247f0
jmp 0x2b72d
leaq -0xe8(%rbp), %rdi
callq 0x11360
leaq -0x90(%rbp), %rdi
callq 0x2d2c0
jmp 0x2b5da
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0xe8(%rbp), %rdi
callq 0x11360
jmp 0x2b8a8
movq 0x1b9832(%rip), %rdi    # 0x1e4fa0
leaq 0x124bf6(%rip), %rsi    # 0x15036b
callq 0x11560
movq -0x78(%rbp), %rsi
addq $0x18, %rsi
leaq -0x110(%rbp), %rdi
movq %rdi, -0x180(%rbp)
callq 0x89eb0
movq -0x180(%rbp), %rdi
movl $0x24, -0x114(%rbp)
leaq -0x114(%rbp), %rsi
callq 0x247f0
jmp 0x2b7b4
leaq -0x110(%rbp), %rdi
callq 0x11360
movq 0x1b97d9(%rip), %rdi    # 0x1e4fa0
leaq 0x126d07(%rip), %rsi    # 0x1524d5
callq 0x11560
leaq -0x68(%rbp), %rdi
callq 0x2d2e0
jmp 0x2b57f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x110(%rbp), %rdi
callq 0x11360
jmp 0x2b8a8
jmp 0x2b800
movq -0x18(%rbp), %rsi
leaq -0x128(%rbp), %rdi
movq %rdi, -0x190(%rbp)
callq 0x56e30
leaq -0x140(%rbp), %rdi
movq %rdi, -0x188(%rbp)
callq 0x24b80
movq -0x190(%rbp), %rdi
callq 0x2d300
movq -0x148(%rbp), %rdx
movq -0x158(%rbp), %rdi
movq -0x188(%rbp), %rcx
movq %rax, %rsi
addq $0x30, %rdx
movq (%rsi), %rax
movq (%rax), %rax
callq *%rax
jmp 0x2b85c
leaq -0x140(%rbp), %rdi
callq 0x24e60
leaq -0x128(%rbp), %rdi
callq 0x2a4e0
movq -0x150(%rbp), %rax
addq $0x190, %rsp            # imm = 0x190
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x50(%rbp)
movl %eax, -0x54(%rbp)
leaq -0x140(%rbp), %rdi
callq 0x24e60
leaq -0x128(%rbp), %rdi
callq 0x2a4e0
movq -0x50(%rbp), %rdi
callq 0x119c0
nopw %cs:(%rax,%rax)