// File: /workspace/github_cpp_makefile_star2_O3/kram[P]kram/src/parser/../vm/instruction.h
// Function: Instruction::print(int)
void print(int ident = 0) {
			std::string i = "UNKNOWN";

			switch (this->instruction) {
				case Ins::ASSIGN:              i = "ASSIGN";              break;
				case Ins::SET:                 i = "SET";                 break;
				case Ins::LITERAL:             i = "LITERAL";             break;
				case Ins::NAME:                i = "NAME";                break;
				case Ins::MATH:                i = "MATH";                break;
				case Ins::IF:                  i = "IF";                  break;
				case Ins::IGNORE:              i = "IGNORE";              break;
				case Ins::PUSH_CLASS:          i = "PUSH_CLASS";          break;
				case Ins::CALL:                i = "CALL";                break;
				case Ins::DEFINE_CLASS:        i = "DEFINE_CLASS";        break;
				case Ins::FUNCTION:            i = "FUNCTION";            break;
				case Ins::FUNCTION_PARAMETER:  i = "FUNCTION_PARAMETER";  break;
				case Ins::CREATE_INSTANCE:     i = "CREATE_INSTANCE";     break;
				case Ins::WHILE:               i = "WHILE";               break;
				case Ins::LIST_CREATE:         i = "LIST_CREATE";         break;
				case Ins::LIST_EXTRACT:        i = "LIST_EXTRACT";        break;
				case Ins::RETURN:              i = "RETURN";              break;
			}

			std::cout << std::string(ident, '\t') << "{\n";
			std::cout << std::string(ident + 1, '\t') << "instruction: " << i << "\n";

			if (this->name != "") {
				std::cout << std::string(ident + 1, '\t') << "name: " << this->name << "\n";
			}

			if (this->type != lexer::Type::IGNORE) {
				std::cout << std::string(ident + 1, '\t') << "type: " << lexer::Token::print(this->type) << "\n";
			}

			if (this->instruction == Ins::LITERAL) {
				std::cout << std::string(ident + 1, '\t') << "value: " << this->value->print() << "\n";
			}

			if (left.size() > 0) {
				std::cout << std::string(ident + 1, '\t') << "left: [\n";

				for (Instruction* i : left) {
					i->print(ident+1);
				}

				std::cout << std::string(ident + 1, '\t') << "]\n";
			}

			if (center.size() > 0) {
				std::cout << std::string(ident + 1, '\t') << "center: [\n";

				for (Instruction* i : center) {
					i->print(ident+1);
				}

				std::cout << std::string(ident + 1, '\t') << "]\n";
			}

			if (right.size() > 0) {
				std::cout << std::string(ident + 1, '\t') << "right: [\n";

				for (Instruction* i : right) {
					i->print(ident+1);
				}

				std::cout << std::string(ident + 1, '\t') << "]\n";
			}

			std::cout << std::string(ident, '\t') << "}\n";
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movl %esi, %ebp
movq %rdi, %r14
leaq 0x50(%rsp), %rax
movq %rax, -0x10(%rax)
leaq 0xe1e2(%rip), %rsi      # 0x120e5
leaq 0xe1e2(%rip), %rdx      # 0x120ec
leaq 0x40(%rsp), %rdi
callq 0x47d2
movl (%r14), %eax
cmpq $0x11, %rax
jae 0x3f46
leaq 0xe2cc(%rip), %rdx      # 0x121f0
movslq (%rdx,%rax,4), %rcx
addq %rdx, %rcx
leaq 0xe306(%rip), %rdx      # 0x12238
movq (%rdx,%rax,8), %r8
leaq 0x40(%rsp), %rdi
movq 0x8(%rdi), %rdx
xorl %esi, %esi
callq 0x3320
movslq %ebp, %rbx
leaq 0x10(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rsp, %rdi
movq %rbx, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x1705e(%rip), %rdi     # 0x1afd0
callq 0x32a0
leaq 0xe200(%rip), %rsi      # 0x1217e
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq %rbx, 0x60(%rsp)
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x3f9e
callq 0x3230
incl %ebp
movslq %ebp, %r15
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x1700a(%rip), %rdi     # 0x1afd0
callq 0x32a0
movq %rax, %r12
leaq 0xe1ac(%rip), %rsi      # 0x12181
movl $0xd, %edx
movq %rax, %rdi
callq 0x32a0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r12, %rdi
callq 0x32a0
leaq 0xe8f8(%rip), %rsi      # 0x128f3
movl $0x1, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x4016
callq 0x3230
leaq 0x8(%r14), %rdi
leaq 0xe8d3(%rip), %rsi      # 0x128f4
callq 0x30a0
testl %eax, %eax
je 0x409b
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16f83(%rip), %rdi     # 0x1afd0
callq 0x32a0
movq %rax, %r12
leaq 0xe54f(%rip), %rsi      # 0x125ab
movl $0x6, %edx
movq %rax, %rdi
callq 0x32a0
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
movq %r12, %rdi
callq 0x32a0
leaq 0xe873(%rip), %rsi      # 0x128f3
movl $0x1, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x409b
callq 0x3230
cmpl $0x2, 0x30(%r14)
je 0x413a
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16f07(%rip), %rdi     # 0x1afd0
callq 0x32a0
movq %rax, %r12
leaq 0xe0b7(%rip), %rsi      # 0x1218f
movl $0x6, %edx
movq %rax, %rdi
callq 0x32a0
movl 0x30(%r14), %esi
leaq 0x20(%rsp), %rdi
callq 0x7210
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x32a0
leaq 0xe7e7(%rip), %rsi      # 0x128f3
movl $0x1, %edx
movq %rax, %rdi
callq 0x32a0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x412c
callq 0x3230
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x413a
callq 0x3230
cmpl $0x2, (%r14)
jne 0x41da
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16e69(%rip), %rdi     # 0x1afd0
callq 0x32a0
movq %rax, %r12
leaq 0xe020(%rip), %rsi      # 0x12196
movl $0x7, %edx
movq %rax, %rdi
callq 0x32a0
movq 0x28(%r14), %rsi
leaq 0x20(%rsp), %rdi
xorl %edx, %edx
callq 0xd094
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x32a0
leaq 0xe747(%rip), %rsi      # 0x128f3
movl $0x1, %edx
movq %rax, %rdi
callq 0x32a0
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x41cc
callq 0x3230
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x41da
callq 0x3230
movq 0x40(%r14), %rax
cmpq 0x38(%r14), %rax
je 0x429a
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16dc5(%rip), %rdi     # 0x1afd0
callq 0x32a0
leaq 0xdf87(%rip), %rsi      # 0x1219e
movl $0x8, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x4232
callq 0x3230
movq 0x38(%r14), %r12
movq 0x40(%r14), %rbx
cmpq %rbx, %r12
je 0x4250
movq (%r12), %rdi
movl %ebp, %esi
callq 0x3ee0
addq $0x8, %r12
jmp 0x423a
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16d5d(%rip), %rdi     # 0x1afd0
callq 0x32a0
leaq 0xdf28(%rip), %rsi      # 0x121a7
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x429a
callq 0x3230
movq 0x70(%r14), %rax
cmpq 0x68(%r14), %rax
je 0x435a
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16d05(%rip), %rdi     # 0x1afd0
callq 0x32a0
leaq 0xded3(%rip), %rsi      # 0x121aa
movl $0xa, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x42f2
callq 0x3230
movq 0x68(%r14), %r12
movq 0x70(%r14), %rbx
cmpq %rbx, %r12
je 0x4310
movq (%r12), %rdi
movl %ebp, %esi
callq 0x3ee0
addq $0x8, %r12
jmp 0x42fa
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16c9d(%rip), %rdi     # 0x1afd0
callq 0x32a0
leaq 0xde68(%rip), %rsi      # 0x121a7
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x435a
callq 0x3230
movq 0x58(%r14), %rax
cmpq 0x50(%r14), %rax
je 0x441a
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16c45(%rip), %rdi     # 0x1afd0
callq 0x32a0
leaq 0xde1e(%rip), %rsi      # 0x121b5
movl $0x9, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x43b2
callq 0x3230
movq 0x50(%r14), %r12
movq 0x58(%r14), %rbx
cmpq %rbx, %r12
je 0x43d0
movq (%r12), %rdi
movl %ebp, %esi
callq 0x3ee0
addq $0x8, %r12
jmp 0x43ba
movq %rsp, %rdi
movq %r13, (%rdi)
movq %r15, %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16bdd(%rip), %rdi     # 0x1afd0
callq 0x32a0
leaq 0xdda8(%rip), %rsi      # 0x121a7
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x441a
callq 0x3230
movq %rsp, %rdi
movq %r13, (%rdi)
movq 0x60(%rsp), %rsi
movl $0x9, %edx
callq 0x32b0
movq (%rsp), %rsi
movq 0x8(%rsp), %rdx
movq 0x16b91(%rip), %rdi     # 0x1afd0
callq 0x32a0
leaq 0xdd74(%rip), %rsi      # 0x121bf
movl $0x2, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x4466
callq 0x3230
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x447a
callq 0x3230
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x44d7
jmp 0x44ee
jmp 0x44d7
jmp 0x44ee
jmp 0x44ee
jmp 0x44ee
jmp 0x44ee
jmp 0x44ee
jmp 0x44ee
jmp 0x44ee
jmp 0x44ee
jmp 0x44ee
jmp 0x44ee
jmp 0x44a7
jmp 0x44d7
movq %rax, %rbx
leaq 0x30(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x44da
callq 0x3230
jmp 0x44da
jmp 0x44d7
jmp 0x44ee
jmp 0x44ee
jmp 0x44d7
jmp 0x44d7
jmp 0x44d7
jmp 0x44d7
jmp 0x44d7
jmp 0x44d7
jmp 0x44d7
jmp 0x44d7
jmp 0x44d7
movq %rax, %rbx
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x44f1
callq 0x3230
jmp 0x44f1
jmp 0x44ee
jmp 0x44ee
movq %rax, %rbx
movq 0x40(%rsp), %rdi
leaq 0x50(%rsp), %rax
cmpq %rax, %rdi
je 0x4505
callq 0x3230
movq %rbx, %rdi
callq 0x33c0
nop