// File: /workspace/github_c_makefile_star2_O0/Ihsoh[P]ilang/compiler/frontend/semantics.c
// Function: get_type_by_type_node
static uint8_t _get_type_by_type_node(
	ParserContext *ctx,
	ParserASTNode *node
) {
	assert(ctx);
	assert(node);

	switch (node->type) {
		case FE_NODE_TYPE_CHAR: {
			return FE_TYPE_CHAR;
		}
		case FE_NODE_TYPE_INT8: {
			return FE_TYPE_INT8;
		}
		case FE_NODE_TYPE_UINT8: {
			return FE_TYPE_UINT8;
		}
		case FE_NODE_TYPE_INT16: {
			return FE_TYPE_INT16;
		}
		case FE_NODE_TYPE_UINT16: {
			return FE_TYPE_UINT16;
		}
		case FE_NODE_TYPE_INT32: {
			return FE_TYPE_INT32;
		}
		case FE_NODE_TYPE_UINT32: {
			return FE_TYPE_UINT32;
		}
		case FE_NODE_TYPE_INT64: {
			return FE_TYPE_INT64;
		}
		case FE_NODE_TYPE_UINT64: {
			return FE_TYPE_UINT64;
		}
		case FE_NODE_TYPE_FLOAT: {
			return FE_TYPE_FLOAT;
		}
		case FE_NODE_TYPE_DOUBLE: {
			return FE_TYPE_DOUBLE;
		}
		case FE_NODE_TYPE_VA_LIST: {
			return FE_TYPE_VA_LIST;
		}
		case FE_NODE_TYPE_STRUCT: {
			return FE_TYPE_STRUCT;
		}
		case FE_NODE_TYPE_ARRAY: {
			return FE_TYPE_ARRAY;
		}
		case FE_NODE_TYPE_FUNC: {
			return FE_TYPE_FUNC;
		}
		case FE_NODE_TYPE_POINTER: {
			return FE_TYPE_POINTER;
		}
		case FE_NODE_TYPE_VOID: {
			return FE_TYPE_VOID;
		}
		default: {
			assert(0);
		}
	}

	return FE_TYPE_UNKNOWN;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
cmpq $0x0, -0x10(%rbp)
je 0x4d769
jmp 0x4d788
leaq 0x2ede6(%rip), %rdi     # 0x7c556
leaq 0x30ad3(%rip), %rsi     # 0x7e24a
movl $0xb4, %edx
leaq 0x33c6b(%rip), %rcx     # 0x813ee
callq 0x30a0
cmpq $0x0, -0x18(%rbp)
je 0x4d791
jmp 0x4d7b0
leaq 0x2883b(%rip), %rdi     # 0x75fd3
leaq 0x30aab(%rip), %rsi     # 0x7e24a
movl $0xb5, %edx
leaq 0x33c43(%rip), %rcx     # 0x813ee
callq 0x30a0
movq -0x18(%rbp), %rax
movl (%rax), %eax
movl %eax, -0x1c(%rbp)
subl $0x400, %eax            # imm = 0x400
je 0x4d8b2
jmp 0x4d7c6
movl -0x1c(%rbp), %eax
subl $0x401, %eax            # imm = 0x401
je 0x4d8b8
jmp 0x4d7d6
movl -0x1c(%rbp), %eax
subl $0x402, %eax            # imm = 0x402
je 0x4d8c4
jmp 0x4d7e6
movl -0x1c(%rbp), %eax
subl $0x403, %eax            # imm = 0x403
je 0x4d8d0
jmp 0x4d7f6
movl -0x1c(%rbp), %eax
subl $0x404, %eax            # imm = 0x404
je 0x4d8dc
jmp 0x4d806
movl -0x1c(%rbp), %eax
subl $0x405, %eax            # imm = 0x405
je 0x4d8be
jmp 0x4d816
movl -0x1c(%rbp), %eax
subl $0x406, %eax            # imm = 0x406
je 0x4d8ca
jmp 0x4d826
movl -0x1c(%rbp), %eax
subl $0x407, %eax            # imm = 0x407
je 0x4d8d6
jmp 0x4d836
movl -0x1c(%rbp), %eax
subl $0x408, %eax            # imm = 0x408
je 0x4d8e2
jmp 0x4d846
movl -0x1c(%rbp), %eax
subl $0x409, %eax            # imm = 0x409
je 0x4d8e8
jmp 0x4d856
movl -0x1c(%rbp), %eax
subl $0x40a, %eax            # imm = 0x40A
je 0x4d8ee
jmp 0x4d866
movl -0x1c(%rbp), %eax
subl $0x40b, %eax            # imm = 0x40B
je 0x4d8f4
jmp 0x4d876
movl -0x1c(%rbp), %eax
subl $0x410, %eax            # imm = 0x410
je 0x4d8fa
jmp 0x4d882
movl -0x1c(%rbp), %eax
subl $0x420, %eax            # imm = 0x420
je 0x4d900
jmp 0x4d88e
movl -0x1c(%rbp), %eax
subl $0x430, %eax            # imm = 0x430
je 0x4d906
jmp 0x4d89a
movl -0x1c(%rbp), %eax
subl $0x440, %eax            # imm = 0x440
je 0x4d90c
jmp 0x4d8a6
movl -0x1c(%rbp), %eax
subl $0x4ff, %eax            # imm = 0x4FF
je 0x4d912
jmp 0x4d918
movb $0x1, -0x1(%rbp)
jmp 0x4d937
movb $0x2, -0x1(%rbp)
jmp 0x4d937
movb $0x6, -0x1(%rbp)
jmp 0x4d937
movb $0x3, -0x1(%rbp)
jmp 0x4d937
movb $0x7, -0x1(%rbp)
jmp 0x4d937
movb $0x4, -0x1(%rbp)
jmp 0x4d937
movb $0x8, -0x1(%rbp)
jmp 0x4d937
movb $0x5, -0x1(%rbp)
jmp 0x4d937
movb $0x9, -0x1(%rbp)
jmp 0x4d937
movb $0xa, -0x1(%rbp)
jmp 0x4d937
movb $0xb, -0x1(%rbp)
jmp 0x4d937
movb $0xc, -0x1(%rbp)
jmp 0x4d937
movb $0xd, -0x1(%rbp)
jmp 0x4d937
movb $0xe, -0x1(%rbp)
jmp 0x4d937
movb $0xf, -0x1(%rbp)
jmp 0x4d937
movb $0x10, -0x1(%rbp)
jmp 0x4d937
movb $-0x1, -0x1(%rbp)
jmp 0x4d937
leaq 0x24b3c(%rip), %rdi     # 0x7245b
leaq 0x30924(%rip), %rsi     # 0x7e24a
movl $0xec, %edx
leaq 0x33abc(%rip), %rcx     # 0x813ee
callq 0x30a0
movb -0x1(%rbp), %al
addq $0x20, %rsp
popq %rbp
retq