// File: /workspace/github_cpp_makefile_star2_O2/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 0xd4e3(%rip), %rsi      # 0x110e5
leaq 0x48(%rsp), %rdi
movq %rsp, %rdx
callq 0x30f0
movl (%r14), %eax
cmpq $0x11, %rax
jae 0x3c30
leaq 0xd5a5(%rip), %rcx      # 0x111c4
movslq (%rcx,%rax,4), %rsi
addq %rcx, %rsi
leaq 0x48(%rsp), %rdi
callq 0x33c0
movslq %ebp, %rbx
leaq 0x10(%rsp), %r13
movq %r13, -0x10(%r13)
movq %rsp, %rdi
pushq $0x9
popq %rdx
movq %rbx, %rsi
callq 0x3260
movq %rbx, 0x20(%rsp)
movq 0x1737a(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd519(%rip), %rsi      # 0x1117e
movq %rax, %rdi
callq 0x3220
movq %rsp, %r12
movq %r12, %rdi
callq 0x3130
incl %ebp
movslq %ebp, %r15
movq %r13, (%r12)
movq %rsp, %rdi
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x1733a(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd4dc(%rip), %rsi      # 0x11181
movq %rax, %rdi
callq 0x3220
leaq 0x48(%rsp), %rsi
movq %rax, %rdi
callq 0x3200
leaq 0xdb88(%rip), %rsi      # 0x11849
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
leaq 0x8(%r14), %r12
leaq 0xdb6e(%rip), %rsi      # 0x1184a
movq %r12, %rdi
callq 0x4166
testb %al, %al
je 0x3d39
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x172d0(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd7e8(%rip), %rsi      # 0x114f7
movq %rax, %rdi
callq 0x3220
movq %rax, %rdi
movq %r12, %rsi
callq 0x3200
leaq 0xdb20(%rip), %rsi      # 0x11849
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
cmpl $0x2, 0x30(%r14)
je 0x3dae
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x17278(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd428(%rip), %rsi      # 0x1118f
movq %rax, %rdi
callq 0x3220
movq %rax, %r12
movl 0x30(%r14), %esi
leaq 0x28(%rsp), %rdi
callq 0x66d0
leaq 0x28(%rsp), %rsi
movq %r12, %rdi
callq 0x3200
leaq 0xdab5(%rip), %rsi      # 0x11849
movq %rax, %rdi
callq 0x3220
leaq 0x28(%rsp), %rdi
callq 0x3130
movq %rsp, %rdi
callq 0x3130
cmpl $0x2, (%r14)
jne 0x3e24
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x17204(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd3bb(%rip), %rsi      # 0x11196
movq %rax, %rdi
callq 0x3220
movq %rax, %r12
movq 0x28(%r14), %rsi
leaq 0x28(%rsp), %rdi
xorl %edx, %edx
callq 0xbe30
leaq 0x28(%rsp), %rsi
movq %r12, %rdi
callq 0x3200
leaq 0xda3f(%rip), %rsi      # 0x11849
movq %rax, %rdi
callq 0x3220
leaq 0x28(%rsp), %rdi
callq 0x3130
movq %rsp, %rdi
callq 0x3130
movq 0x40(%r14), %rax
cmpq 0x38(%r14), %rax
je 0x3ebe
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x17186(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd345(%rip), %rsi      # 0x1119e
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
movq 0x38(%r14), %r12
movq 0x40(%r14), %rbx
cmpq %rbx, %r12
je 0x3e87
movq (%r12), %rdi
movl %ebp, %esi
callq 0x3be8
addq $0x8, %r12
jmp 0x3e71
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x17131(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd2f9(%rip), %rsi      # 0x111a7
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
movq 0x70(%r14), %rax
cmpq 0x68(%r14), %rax
je 0x3f58
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x170ec(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd2b7(%rip), %rsi      # 0x111aa
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
movq 0x68(%r14), %r12
movq 0x70(%r14), %rbx
cmpq %rbx, %r12
je 0x3f21
movq (%r12), %rdi
movl %ebp, %esi
callq 0x3be8
addq $0x8, %r12
jmp 0x3f0b
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x17097(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd25f(%rip), %rsi      # 0x111a7
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
movq 0x58(%r14), %rax
cmpq 0x50(%r14), %rax
je 0x3ff2
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x17052(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd228(%rip), %rsi      # 0x111b5
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
movq 0x50(%r14), %r12
movq 0x58(%r14), %rbx
cmpq %rbx, %r12
je 0x3fbb
movq (%r12), %rdi
movl %ebp, %esi
callq 0x3be8
addq $0x8, %r12
jmp 0x3fa5
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq %r15, %rsi
callq 0x3260
movq 0x16ffd(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd1c5(%rip), %rsi      # 0x111a7
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
movq %rsp, %rdi
movq %r13, (%rdi)
pushq $0x9
popq %rdx
movq 0x20(%rsp), %rsi
callq 0x3260
movq 0x16fc4(%rip), %rdi     # 0x1afd0
movq %rsp, %rsi
callq 0x3200
leaq 0xd1a4(%rip), %rsi      # 0x111bf
movq %rax, %rdi
callq 0x3220
movq %rsp, %rdi
callq 0x3130
leaq 0x48(%rsp), %rdi
callq 0x3130
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x4089
jmp 0x409a
jmp 0x4089
jmp 0x409a
jmp 0x409a
jmp 0x409a
jmp 0x409a
jmp 0x409a
jmp 0x409a
jmp 0x409a
jmp 0x409a
jmp 0x409a
jmp 0x4060
jmp 0x4089
movq %rax, %rbx
leaq 0x28(%rsp), %rdi
callq 0x3130
jmp 0x408c
jmp 0x4089
jmp 0x409a
jmp 0x409a
jmp 0x4089
jmp 0x4089
jmp 0x4089
jmp 0x4089
jmp 0x4089
jmp 0x4089
jmp 0x409a
jmp 0x4089
jmp 0x4089
jmp 0x4089
movq %rax, %rbx
movq %rsp, %rdi
callq 0x3130
jmp 0x409d
jmp 0x409a
jmp 0x409a
movq %rax, %rbx
leaq 0x48(%rsp), %rdi
callq 0x3130
movq %rbx, %rdi
callq 0x3390
nop