// File: /workspace/github_cpp_makefile_star2_O2/RuiDGPires[P]CrimLang/src/semantic_analiser.cpp
// Function: sc_Tracker::unary(crl::Node*)
void _sc_Tracker::unary(crl::Node *node){
	crl::Node *ident = node->get_child(0);
	ASSERT(ident->type == crl::Node::Type::LEAF, "Node must be leaf");
	
	crl::Token t = get_token(ident);

	Context::Item item = this->context->seek(t.str);
	ASSERT(item.type == Context::Item::Type::VAR, "Identifier has not been defined: " + item.name);
	ASSERT(item._mutable, "Variable must be mutable");
	ASSERT(item.subtype == "i32" || item.subtype == "u32" || item.subtype == "char" || item.subtype == "i64" || item.subtype == "u64" || item.subtype == "f32" || item.subtype == "f64", "Must have numeric type");
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
subq $0x148, %rsp            # imm = 0x148
movq %rdi, %rbx
movq (%rsi), %rax
movq %rsi, %rdi
xorl %esi, %esi
callq *0x18(%rax)
cmpl $0x10, 0x8(%rax)
jne 0x120f2
addq $0x58, %rax
leaq -0x160(%rbp), %r14
movq %r14, %rdi
movq %rax, %rsi
callq 0xb24a
movq 0x8(%rbx), %rbx
leaq -0x40(%rbp), %rdi
movq %r14, %rsi
callq 0x32f0
leaq -0x130(%rbp), %rdi
leaq -0x40(%rbp), %rdx
movq %rbx, %rsi
callq 0x4172
leaq -0x40(%rbp), %rdi
callq 0x3110
cmpl $0x3, -0x130(%rbp)
jne 0x1214c
cmpb $0x0, -0xe0(%rbp)
je 0x121a6
leaq -0x108(%rbp), %rbx
leaq 0x3284(%rip), %rsi      # 0x152ce
movq %rbx, %rdi
callq 0x410a
testb %al, %al
jne 0x120cc
leaq 0x3636(%rip), %rsi      # 0x15693
movq %rbx, %rdi
callq 0x410a
testb %al, %al
jne 0x120cc
leaq 0x362b(%rip), %rsi      # 0x1569b
movq %rbx, %rdi
callq 0x410a
testb %al, %al
jne 0x120cc
leaq 0x361d(%rip), %rsi      # 0x156a0
movq %rbx, %rdi
callq 0x410a
testb %al, %al
jne 0x120cc
leaq 0x360e(%rip), %rsi      # 0x156a4
movq %rbx, %rdi
callq 0x410a
testb %al, %al
jne 0x120cc
leaq 0x35ee(%rip), %rsi      # 0x15697
movq %rbx, %rdi
callq 0x410a
testb %al, %al
jne 0x120cc
leaq 0x35ec(%rip), %rsi      # 0x156a8
movq %rbx, %rdi
callq 0x410a
testb %al, %al
je 0x121f4
leaq -0x130(%rbp), %rdi
callq 0x44c8
leaq -0x160(%rbp), %rdi
callq 0x135f8
addq $0x148, %rsp            # imm = 0x148
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
pushq $0x50
popq %rdi
callq 0x3140
movq %rax, %rbx
leaq 0x3be4(%rip), %rsi      # 0x15ce8
leaq -0xc0(%rbp), %rdi
leaq -0x130(%rbp), %rdx
callq 0x3be4
movb $0x1, %r15b
pushq $-0x1
popq %rdx
leaq -0xc0(%rbp), %rcx
movq %rbx, %rdi
movl %edx, %esi
callq 0x4e88
xorl %r15d, %r15d
leaq 0xbc58(%rip), %rsi      # 0x1dd90
leaq -0xd207(%rip), %rdx     # 0x4f38
movq %rbx, %rdi
callq 0x33f0
jmp 0x12240
pushq $0x50
popq %rdi
callq 0x3140
movq %rax, %rbx
leaq -0x128(%rbp), %rdx
leaq 0x3acd(%rip), %rsi      # 0x15c32
leaq -0xa0(%rbp), %rdi
callq 0x3c55
movb $0x1, %r15b
pushq $-0x1
popq %rdx
leaq -0xa0(%rbp), %rcx
movq %rbx, %rdi
movl %edx, %esi
callq 0x4e88
xorl %r15d, %r15d
leaq 0xbbfe(%rip), %rsi      # 0x1dd90
leaq -0xd261(%rip), %rdx     # 0x4f38
movq %rbx, %rdi
callq 0x33f0
jmp 0x12240
pushq $0x50
popq %rdi
callq 0x3140
movq %rax, %rbx
leaq 0x3a9c(%rip), %rsi      # 0x15c54
leaq -0x80(%rbp), %rdi
leaq -0x19(%rbp), %rdx
callq 0x3be4
movb $0x1, %r15b
pushq $-0x1
popq %rdx
leaq -0x80(%rbp), %rcx
movq %rbx, %rdi
movl %edx, %esi
callq 0x4e88
xorl %r15d, %r15d
leaq 0xbbad(%rip), %rsi      # 0x1dd90
leaq -0xd2b2(%rip), %rdx     # 0x4f38
movq %rbx, %rdi
callq 0x33f0
jmp 0x12240
pushq $0x50
popq %rdi
callq 0x3140
movq %rax, %rbx
leaq 0x3af4(%rip), %rsi      # 0x15cfa
leaq -0x60(%rbp), %rdi
leaq -0x19(%rbp), %rdx
callq 0x3be4
movb $0x1, %r15b
pushq $-0x1
popq %rdx
leaq -0x60(%rbp), %rcx
movq %rbx, %rdi
movl %edx, %esi
callq 0x4e88
xorl %r15d, %r15d
leaq 0xbb5f(%rip), %rsi      # 0x1dd90
leaq -0xd300(%rip), %rdx     # 0x4f38
movq %rbx, %rdi
callq 0x33f0
movq %rax, %r14
leaq -0x60(%rbp), %rdi
jmp 0x12260
jmp 0x1226c
movq %rax, %r14
leaq -0x80(%rbp), %rdi
jmp 0x12260
jmp 0x1226c
movq %rax, %r14
leaq -0xa0(%rbp), %rdi
callq 0x3110
testb %r15b, %r15b
jne 0x1226f
jmp 0x12277
movq %rax, %r14
movq %rbx, %rdi
callq 0x31b0
leaq -0x130(%rbp), %rdi
callq 0x44c8
jmp 0x122b9
movq %rax, %r14
leaq -0xc0(%rbp), %rdi
callq 0x3110
testb %r15b, %r15b
jne 0x1229e
jmp 0x122c5
movq %rax, %r14
movq %rbx, %rdi
callq 0x31b0
jmp 0x122c5
movq %rax, %r14
leaq -0x40(%rbp), %rdi
callq 0x3110
jmp 0x122b9
movq %rax, %r14
leaq -0x160(%rbp), %rdi
callq 0x135f8
movq %r14, %rdi
callq 0x3410