// File: CobaltXII[P]cxcc/./semantic/semantic_analyzer.hpp
// Function: semantic_analyzer_t::die(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>, long, long)
void die(std::string error, long lineno, long colno) {
		std::cerr << set_color(bold_white) << filename << ":";
		std::cerr << lineno + 1 << ":" << colno + 1 << ": ";
		std::cerr << set_color(bold_red) << "error: ";
		std::cerr << set_color(bold_white) << error << set_color(reset) << std::endl;
		// Print the line where the error occurred.
		std::stringstream in(buffer);
		std::string line;
		for (int i = 0; i < lineno; i++) {
			std::getline(in, line);
		}
		std::getline(in, line);
		std::cerr << line << std::endl;
		// Print an indicator pointing to the column where the error occurred.
		for (int i = 0; i < colno + 1; i++) {
			if (line[i] == '\t') {
				std::cerr << '\t';
			} else {
				std::cerr << ' ';
			}
		}
		std::cerr << set_color(bold_green) << '^' << set_color(reset) << std::endl;
		exit(3);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x330, %rsp            # imm = 0x330
movq %rsi, -0x2c0(%rbp)
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq %rcx, -0x20(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x2b8(%rbp)
leaq -0x40(%rbp), %rdi
movq %rdi, -0x2b0(%rbp)
movl $0xf, %esi
callq 0x6000
movq -0x2b0(%rbp), %rsi
movq 0x194d8(%rip), %rdi     # 0x34fe8
callq 0x3290
movq %rax, -0x2a8(%rbp)
jmp 0x1bb1e
movq -0x2b8(%rbp), %rsi
movq -0x2a8(%rbp), %rdi
callq 0x3290
movq %rax, -0x2c8(%rbp)
jmp 0x1bb3a
movq -0x2c8(%rbp), %rdi
leaq 0xcacb(%rip), %rsi      # 0x28613
callq 0x32c0
jmp 0x1bb4f
leaq -0x40(%rbp), %rdi
callq 0x31c0
movq -0x18(%rbp), %rsi
incq %rsi
movq 0x19482(%rip), %rdi     # 0x34fe8
movq %rdi, -0x2e0(%rbp)
callq 0x34f0
movq %rax, %rdi
leaq 0xca97(%rip), %rsi      # 0x28613
callq 0x32c0
movq %rax, %rdi
movq -0x20(%rbp), %rsi
incq %rsi
callq 0x34f0
movq %rax, %rdi
leaq 0xc863(%rip), %rsi      # 0x283fd
callq 0x32c0
leaq -0x70(%rbp), %rdi
movq %rdi, -0x2d8(%rbp)
movl $0x9, %esi
callq 0x6000
movq -0x2e0(%rbp), %rdi
movq -0x2d8(%rbp), %rsi
callq 0x3290
movq %rax, -0x2d0(%rbp)
jmp 0x1bbd0
movq -0x2d0(%rbp), %rdi
leaq 0xca37(%rip), %rsi      # 0x28615
callq 0x32c0
jmp 0x1bbe5
leaq -0x70(%rbp), %rdi
callq 0x31c0
leaq -0x90(%rbp), %rdi
movq %rdi, -0x2f0(%rbp)
movl $0xf, %esi
callq 0x6000
movq -0x2f0(%rbp), %rsi
movq 0x193d4(%rip), %rdi     # 0x34fe8
callq 0x3290
movq %rax, -0x2e8(%rbp)
jmp 0x1bc22
movq -0x2c0(%rbp), %rsi
movq -0x2e8(%rbp), %rdi
callq 0x3290
movq %rax, -0x2f8(%rbp)
jmp 0x1bc3e
leaq -0xb0(%rbp), %rdi
movl $0x10, %esi
callq 0x6000
jmp 0x1bc51
movq -0x2f8(%rbp), %rdi
leaq -0xb0(%rbp), %rsi
callq 0x3290
movq %rax, -0x300(%rbp)
jmp 0x1bc6d
movq -0x300(%rbp), %rdi
movq 0x19345(%rip), %rsi     # 0x34fc0
callq 0x3300
jmp 0x1bc82
leaq -0xb0(%rbp), %rdi
callq 0x31c0
leaq -0x90(%rbp), %rdi
callq 0x31c0
movq -0x2b8(%rbp), %rax
addq $0x20, %rax
movq %rax, -0x308(%rbp)
movl $0x10, %edi
movl $0x8, %esi
callq 0xc440
movq -0x308(%rbp), %rsi
movl %eax, %edx
leaq -0x238(%rbp), %rdi
callq 0x3450
leaq -0x258(%rbp), %rdi
callq 0x33e0
movl $0x0, -0x25c(%rbp)
movslq -0x25c(%rbp), %rax
cmpq -0x18(%rbp), %rax
jge 0x1bd9b
leaq -0x238(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x3080
jmp 0x1bd0c
jmp 0x1bd0e
movl -0x25c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x25c(%rbp)
jmp 0x1bce6
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x40(%rbp), %rdi
callq 0x31c0
jmp 0x1bf60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x70(%rbp), %rdi
callq 0x31c0
jmp 0x1bf60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1bd79
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb0(%rbp), %rdi
callq 0x31c0
leaq -0x90(%rbp), %rdi
callq 0x31c0
jmp 0x1bf60
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1bf48
leaq -0x238(%rbp), %rdi
leaq -0x258(%rbp), %rsi
callq 0x3080
jmp 0x1bdb0
movq 0x19231(%rip), %rdi     # 0x34fe8
leaq -0x258(%rbp), %rsi
callq 0x3290
movq %rax, -0x310(%rbp)
jmp 0x1bdcc
movq -0x310(%rbp), %rdi
movq 0x191e6(%rip), %rsi     # 0x34fc0
callq 0x3300
jmp 0x1bde1
movl $0x0, -0x260(%rbp)
movslq -0x260(%rbp), %rax
movq -0x20(%rbp), %rcx
addq $0x1, %rcx
cmpq %rcx, %rax
jge 0x1be67
movslq -0x260(%rbp), %rsi
leaq -0x258(%rbp), %rdi
callq 0x3540
movq %rax, -0x318(%rbp)
jmp 0x1be1b
movq -0x318(%rbp), %rax
movsbl (%rax), %eax
cmpl $0x9, %eax
jne 0x1be3f
movq 0x191b7(%rip), %rdi     # 0x34fe8
movl $0x9, %esi
callq 0x3360
jmp 0x1be3d
jmp 0x1be54
movq 0x191a2(%rip), %rdi     # 0x34fe8
movl $0x20, %esi
callq 0x3360
jmp 0x1be52
jmp 0x1be54
jmp 0x1be56
movl -0x260(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x260(%rbp)
jmp 0x1bdeb
leaq -0x280(%rbp), %rdi
movl $0xa, %esi
callq 0x6000
jmp 0x1be7a
movq 0x19167(%rip), %rdi     # 0x34fe8
leaq -0x280(%rbp), %rsi
callq 0x3290
movq %rax, -0x320(%rbp)
jmp 0x1be96
movq -0x320(%rbp), %rdi
movl $0x5e, %esi
callq 0x3360
movq %rax, -0x328(%rbp)
jmp 0x1beb0
leaq -0x2a0(%rbp), %rdi
movl $0x10, %esi
callq 0x6000
jmp 0x1bec3
movq -0x328(%rbp), %rdi
leaq -0x2a0(%rbp), %rsi
callq 0x3290
movq %rax, -0x330(%rbp)
jmp 0x1bedf
movq -0x330(%rbp), %rdi
movq 0x190d3(%rip), %rsi     # 0x34fc0
callq 0x3300
jmp 0x1bef4
leaq -0x2a0(%rbp), %rdi
callq 0x31c0
leaq -0x280(%rbp), %rdi
callq 0x31c0
movl $0x3, %edi
callq 0x3380
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0x1bf3c
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x2a0(%rbp), %rdi
callq 0x31c0
leaq -0x280(%rbp), %rdi
callq 0x31c0
leaq -0x258(%rbp), %rdi
callq 0x31c0
leaq -0x238(%rbp), %rdi
callq 0x3220
movq -0x48(%rbp), %rdi
callq 0x34c0
nopl (%rax)