// File: /workspace/github_cpp_makefile_star2_O1/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 0xf1e2(%rip), %rsi      # 0x130e5
leaq 0xf1e2(%rip), %rdx      # 0x130ec
leaq 0x40(%rsp), %rdi
callq 0x47cc
movl (%r14), %eax
cmpq $0x11, %rax
jae 0x3f46
leaq 0xf2cc(%rip), %rdx      # 0x131f0
movslq (%rdx,%rax,4), %rcx
addq %rdx, %rcx
leaq 0xf306(%rip), %rdx      # 0x13238
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 0x1805e(%rip), %rdi     # 0x1bfd0
callq 0x32a0
leaq 0xf200(%rip), %rsi      # 0x1317e
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 0x1800a(%rip), %rdi     # 0x1bfd0
callq 0x32a0
movq %rax, %r12
leaq 0xf1ac(%rip), %rsi      # 0x13181
movl $0xd, %edx
movq %rax, %rdi
callq 0x32a0
movq 0x40(%rsp), %rsi
movq 0x48(%rsp), %rdx
movq %r12, %rdi
callq 0x32a0
leaq 0xf90c(%rip), %rsi      # 0x13907
movl $0x1, %edx
movq %rax, %rdi
callq 0x32a0
movq (%rsp), %rdi
cmpq %r13, %rdi
je 0x4016
callq 0x3230
leaq 0x8(%r14), %rdi
leaq 0xf8e7(%rip), %rsi      # 0x13908
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 0x17f83(%rip), %rdi     # 0x1bfd0
callq 0x32a0
movq %rax, %r12
leaq 0xf563(%rip), %rsi      # 0x135bf
movl $0x6, %edx
movq %rax, %rdi
callq 0x32a0
movq 0x8(%r14), %rsi
movq 0x10(%r14), %rdx
movq %r12, %rdi
callq 0x32a0
leaq 0xf887(%rip), %rsi      # 0x13907
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 0x17f07(%rip), %rdi     # 0x1bfd0
callq 0x32a0
movq %rax, %r12
leaq 0xf0b7(%rip), %rsi      # 0x1318f
movl $0x6, %edx
movq %rax, %rdi
callq 0x32a0
movl 0x30(%r14), %esi
leaq 0x20(%rsp), %rdi
callq 0x7242
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x32a0
leaq 0xf7fb(%rip), %rsi      # 0x13907
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 0x17e69(%rip), %rdi     # 0x1bfd0
callq 0x32a0
movq %rax, %r12
leaq 0xf020(%rip), %rsi      # 0x13196
movl $0x7, %edx
movq %rax, %rdi
callq 0x32a0
movq 0x28(%r14), %rsi
leaq 0x20(%rsp), %rdi
xorl %edx, %edx
callq 0xd204
movq 0x20(%rsp), %rsi
movq 0x28(%rsp), %rdx
movq %r12, %rdi
callq 0x32a0
leaq 0xf75b(%rip), %rsi      # 0x13907
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 0x17dc5(%rip), %rdi     # 0x1bfd0
callq 0x32a0
leaq 0xef87(%rip), %rsi      # 0x1319e
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 0x17d5d(%rip), %rdi     # 0x1bfd0
callq 0x32a0
leaq 0xef28(%rip), %rsi      # 0x131a7
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 0x17d05(%rip), %rdi     # 0x1bfd0
callq 0x32a0
leaq 0xeed3(%rip), %rsi      # 0x131aa
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 0x17c9d(%rip), %rdi     # 0x1bfd0
callq 0x32a0
leaq 0xee68(%rip), %rsi      # 0x131a7
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 0x17c45(%rip), %rdi     # 0x1bfd0
callq 0x32a0
leaq 0xee1e(%rip), %rsi      # 0x131b5
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 0x17bdd(%rip), %rdi     # 0x1bfd0
callq 0x32a0
leaq 0xeda8(%rip), %rsi      # 0x131a7
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 0x17b91(%rip), %rdi     # 0x1bfd0
callq 0x32a0
leaq 0xed74(%rip), %rsi      # 0x131bf
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