// File: RuiDGPires[P]CrimLang/src/tokenizer.cpp
// Function: Tracker::check_keyword()
void Tracker::check_keyword(){
	if (this->current_token.str.compare("if") == 0)
		this->current_token.type = crl::Token::Type::IF;
	else if (this->current_token.str.compare("else") == 0)
		this->current_token.type = crl::Token::Type::ELSE;
	else if (this->current_token.str.compare("for") == 0)
		this->current_token.type = crl::Token::Type::FOR;
	else if (this->current_token.str.compare("while") == 0)
		this->current_token.type = crl::Token::Type::WHILE;
	else if (this->current_token.str.compare("mut") == 0)
		this->current_token.type = crl::Token::Type::MUT;
	else if (this->current_token.str.compare("void") == 0)
		this->current_token.type = crl::Token::Type::VOID;
	else if (this->current_token.str.compare("char") == 0)
		this->current_token.type = crl::Token::Type::TCHAR;
	else if (this->current_token.str.compare("string") == 0)
		this->current_token.type = crl::Token::Type::TSTR;
	else if (this->current_token.str.compare("i32") == 0)
		this->current_token.type = crl::Token::Type::I32;
	else if (this->current_token.str.compare("u32") == 0)
		this->current_token.type = crl::Token::Type::U32;
	else if (this->current_token.str.compare("f32") == 0)
		this->current_token.type = crl::Token::Type::F32;
	else if (this->current_token.str.compare("f64") == 0)
		this->current_token.type = crl::Token::Type::F64;
	else if (this->current_token.str.compare("cas") == 0)
		this->current_token.type = crl::Token::Type::CAS;
	else if (this->current_token.str.compare("as") == 0)
		this->current_token.type = crl::Token::Type::AS;
	else if (this->current_token.str.compare("return") == 0)
		this->current_token.type = crl::Token::Type::RETURN;
	else if (this->current_token.str.compare("break") == 0)
		this->current_token.type = crl::Token::Type::BREAK;
	else if (this->current_token.str.compare("continue") == 0)
		this->current_token.type = crl::Token::Type::CONTINUE;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x10, %rsp
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x10(%rbp)
leaq 0x3106(%rip), %rsi      # 0x2be01
callq 0x4100
cmpl $0x0, %eax
jne 0x28d15
movq -0x10(%rbp), %rax
movl $0x2, 0x20(%rax)
jmp 0x28f77
movq -0x10(%rbp), %rdi
leaq 0x30e4(%rip), %rsi      # 0x2be04
callq 0x4100
cmpl $0x0, %eax
jne 0x28d3a
movq -0x10(%rbp), %rax
movl $0x3, 0x20(%rax)
jmp 0x28f75
movq -0x10(%rbp), %rdi
leaq 0x30c4(%rip), %rsi      # 0x2be09
callq 0x4100
cmpl $0x0, %eax
jne 0x28d5f
movq -0x10(%rbp), %rax
movl $0xf, 0x20(%rax)
jmp 0x28f73
movq -0x10(%rbp), %rdi
leaq 0x30a3(%rip), %rsi      # 0x2be0d
callq 0x4100
cmpl $0x0, %eax
jne 0x28d84
movq -0x10(%rbp), %rax
movl $0x10, 0x20(%rax)
jmp 0x28f71
movq -0x10(%rbp), %rdi
leaq 0x26c1(%rip), %rsi      # 0x2b450
callq 0x4100
cmpl $0x0, %eax
jne 0x28da9
movq -0x10(%rbp), %rax
movl $0x4, 0x20(%rax)
jmp 0x28f6f
movq -0x10(%rbp), %rdi
leaq 0x28da(%rip), %rsi      # 0x2b68e
callq 0x4100
cmpl $0x0, %eax
jne 0x28dce
movq -0x10(%rbp), %rax
movl $0x5, 0x20(%rax)
jmp 0x28f6d
movq -0x10(%rbp), %rdi
leaq 0x28c2(%rip), %rsi      # 0x2b69b
callq 0x4100
cmpl $0x0, %eax
jne 0x28df3
movq -0x10(%rbp), %rax
movl $0x6, 0x20(%rax)
jmp 0x28f6b
movq -0x10(%rbp), %rdi
leaq 0x2e19(%rip), %rsi      # 0x2bc17
callq 0x4100
cmpl $0x0, %eax
jne 0x28e18
movq -0x10(%rbp), %rax
movl $0x7, 0x20(%rax)
jmp 0x28f69
movq -0x10(%rbp), %rdi
leaq 0x24ab(%rip), %rsi      # 0x2b2ce
callq 0x4100
cmpl $0x0, %eax
jne 0x28e3d
movq -0x10(%rbp), %rax
movl $0x8, 0x20(%rax)
jmp 0x28f67
movq -0x10(%rbp), %rdi
leaq 0x284b(%rip), %rsi      # 0x2b693
callq 0x4100
cmpl $0x0, %eax
jne 0x28e62
movq -0x10(%rbp), %rax
movl $0x9, 0x20(%rax)
jmp 0x28f65
movq -0x10(%rbp), %rdi
leaq 0x282a(%rip), %rsi      # 0x2b697
callq 0x4100
cmpl $0x0, %eax
jne 0x28e87
movq -0x10(%rbp), %rax
movl $0xa, 0x20(%rax)
jmp 0x28f63
movq -0x10(%rbp), %rdi
leaq 0x2816(%rip), %rsi      # 0x2b6a8
callq 0x4100
cmpl $0x0, %eax
jne 0x28eac
movq -0x10(%rbp), %rax
movl $0xb, 0x20(%rax)
jmp 0x28f61
movq -0x10(%rbp), %rdi
leaq 0x2f5c(%rip), %rsi      # 0x2be13
callq 0x4100
cmpl $0x0, %eax
jne 0x28ed1
movq -0x10(%rbp), %rax
movl $0x11, 0x20(%rax)
jmp 0x28f5f
movq -0x10(%rbp), %rdi
leaq 0x2f38(%rip), %rsi      # 0x2be14
callq 0x4100
cmpl $0x0, %eax
jne 0x28ef3
movq -0x10(%rbp), %rax
movl $0x12, 0x20(%rax)
jmp 0x28f5d
movq -0x10(%rbp), %rdi
leaq 0x2f19(%rip), %rsi      # 0x2be17
callq 0x4100
cmpl $0x0, %eax
jne 0x28f15
movq -0x10(%rbp), %rax
movl $0xc, 0x20(%rax)
jmp 0x28f5b
movq -0x10(%rbp), %rdi
leaq 0x2efe(%rip), %rsi      # 0x2be1e
callq 0x4100
cmpl $0x0, %eax
jne 0x28f37
movq -0x10(%rbp), %rax
movl $0xd, 0x20(%rax)
jmp 0x28f59
movq -0x10(%rbp), %rdi
leaq 0x2a2a(%rip), %rsi      # 0x2b96c
callq 0x4100
cmpl $0x0, %eax
jne 0x28f57
movq -0x10(%rbp), %rax
movl $0xe, 0x20(%rax)
jmp 0x28f59
jmp 0x28f5b
jmp 0x28f5d
jmp 0x28f5f
jmp 0x28f61
jmp 0x28f63
jmp 0x28f65
jmp 0x28f67
jmp 0x28f69
jmp 0x28f6b
jmp 0x28f6d
jmp 0x28f6f
jmp 0x28f71
jmp 0x28f73
jmp 0x28f75
jmp 0x28f77
addq $0x10, %rsp
popq %rbp
retq
nopl (%rax)