// File: /workspace/github_cpp_makefile_star2_O2/RuiDGPires[P]CrimLang/src/tokenizer.cpp
// Function: Tracker::parse_symbol(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char>>)
bool Tracker::parse_symbol(std::string str){
	if (str.compare("*") == 0)
		this->current_token.type = crl::Token::Type::TIMES;
	else if (str.compare("+") == 0)
		this->current_token.type = crl::Token::Type::PLUS;
	else if (str.compare("++") == 0)
		this->current_token.type = crl::Token::Type::INC;
	else if (str.compare("-") == 0)
		this->current_token.type = crl::Token::Type::MINUS;
	else if (str.compare("--") == 0)
		this->current_token.type = crl::Token::Type::DECR;
	else if (str.compare("/") == 0)
		this->current_token.type = crl::Token::Type::SLASH;
	else if (str.compare(".") == 0)
		this->current_token.type = crl::Token::Type::DOT;
	else if (str.compare("(") == 0)
		this->current_token.type = crl::Token::Type::LPAREN;
	else if (str.compare(")") == 0)
		this->current_token.type = crl::Token::Type::RPAREN;
	else if (str.compare("{") == 0)
		this->current_token.type = crl::Token::Type::LBRACK;
	else if (str.compare("}") == 0)
		this->current_token.type = crl::Token::Type::RBRACK;
	else if (str.compare("[") == 0)
		this->current_token.type = crl::Token::Type::LSBR;
	else if (str.compare("]") == 0)
		this->current_token.type = crl::Token::Type::RSBR;
	else if (str.compare("$") == 0)
		this->current_token.type = crl::Token::Type::DOLLAR;
	else if (str.compare("&") == 0)
		this->current_token.type = crl::Token::Type::AND;
	else if (str.compare("&&") == 0)
		this->current_token.type = crl::Token::Type::LAND;
	else if (str.compare("|") == 0)
		this->current_token.type = crl::Token::Type::OR;
	else if (str.compare("||") == 0)
		this->current_token.type = crl::Token::Type::LOR;
	else if (str.compare(":") == 0)
		this->current_token.type = crl::Token::Type::CLN;
	else if (str.compare(";") == 0)
		this->current_token.type = crl::Token::Type::SEMICLN;
	else if (str.compare(",") == 0)
		this->current_token.type = crl::Token::Type::COMMA;
	else if (str.compare("=") == 0)
		this->current_token.type = crl::Token::Type::BECOMES;
	else if (str.compare("+=") == 0)
		this->current_token.type = crl::Token::Type::PLEQ;
	else if (str.compare("-=") == 0)
		this->current_token.type = crl::Token::Type::MIEQ;
	else if (str.compare("*=") == 0)
		this->current_token.type = crl::Token::Type::TIEQ;
	else if (str.compare("/=") == 0)
		this->current_token.type = crl::Token::Type::SLEQ;
	else if (str.compare("==") == 0)
		this->current_token.type = crl::Token::Type::EQL;
	else if (str.compare(">=") == 0)
		this->current_token.type = crl::Token::Type::GEQ;
	else if (str.compare("<=") == 0)
		this->current_token.type = crl::Token::Type::LEQ;
	else if (str.compare(">") == 0)
		this->current_token.type = crl::Token::Type::GTR;
	else if (str.compare("<") == 0)
		this->current_token.type = crl::Token::Type::LSS;
	else if (str.compare("!=") == 0)
		this->current_token.type = crl::Token::Type::NEQ;
	else if (str.compare("//") == 0){
		this->current_token.type = crl::Token::Type::NONE;
		this->current_token.str = ""; 
		this->state = PState::COMMENT;
	}
	else return 0;

	return 1;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %rbx
pushq %rax
movq %rsi, %r14
movq %rdi, %rbx
leaq 0x2693(%rip), %rsi      # 0x15dc4
movq %r14, %rdi
callq 0x30c0
pushq $0x20
popq %r15
testl %eax, %eax
je 0x13a2c
leaq 0x267b(%rip), %rsi      # 0x15dc7
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a30
leaq 0x2663(%rip), %rsi      # 0x15dc6
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a34
leaq 0x2650(%rip), %rsi      # 0x15dca
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a38
leaq 0x2638(%rip), %rsi      # 0x15dc9
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a3c
leaq 0x2653(%rip), %rsi      # 0x15dfb
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a40
leaq 0x260d(%rip), %rsi      # 0x15dcc
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a44
leaq 0x197f(%rip), %rsi      # 0x15155
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a48
leaq 0x25ac(%rip), %rsi      # 0x15d99
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a4c
leaq 0x25ca(%rip), %rsi      # 0x15dce
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a50
leaq 0x25b5(%rip), %rsi      # 0x15dd0
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a54
leaq 0x1b8c(%rip), %rsi      # 0x153be
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a58
leaq 0x2552(%rip), %rsi      # 0x15d9b
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a5c
leaq 0x2572(%rip), %rsi      # 0x15dd2
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a60
leaq 0x255e(%rip), %rsi      # 0x15dd5
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a64
leaq 0x2546(%rip), %rsi      # 0x15dd4
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a68
leaq 0x2533(%rip), %rsi      # 0x15dd8
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a6c
leaq 0x251b(%rip), %rsi      # 0x15dd7
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a70
leaq 0x2507(%rip), %rsi      # 0x15dda
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a74
leaq 0x24f2(%rip), %rsi      # 0x15ddc
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a78
leaq 0x24dd(%rip), %rsi      # 0x15dde
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a7c
leaq 0x24e0(%rip), %rsi      # 0x15df8
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a80
leaq 0x24b1(%rip), %rsi      # 0x15de0
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a84
leaq 0x249d(%rip), %rsi      # 0x15de3
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a88
leaq 0x2489(%rip), %rsi      # 0x15de6
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a8c
leaq 0x2475(%rip), %rsi      # 0x15de9
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a90
leaq 0x2461(%rip), %rsi      # 0x15dec
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a94
leaq 0x244d(%rip), %rsi      # 0x15def
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a98
leaq 0x2439(%rip), %rsi      # 0x15df2
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13a9c
leaq 0x2454(%rip), %rsi      # 0x15e24
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13aa0
leaq 0x240e(%rip), %rsi      # 0x15df5
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13aa4
leaq 0x23f9(%rip), %rsi      # 0x15df7
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13aa8
leaq 0x23e5(%rip), %rsi      # 0x15dfa
movq %r14, %rdi
callq 0x30c0
testl %eax, %eax
je 0x13abc
xorl %eax, %eax
jmp 0x13ab1
pushq $0x15
jmp 0x13aaa
pushq $0x16
jmp 0x13aaa
pushq $0x18
jmp 0x13aaa
pushq $0x17
jmp 0x13aaa
pushq $0x19
jmp 0x13aaa
pushq $0x1a
jmp 0x13aaa
pushq $0x1d
jmp 0x13aaa
pushq $0x20
jmp 0x13aaa
pushq $0x21
jmp 0x13aaa
pushq $0x24
jmp 0x13aaa
pushq $0x25
jmp 0x13aaa
pushq $0x22
jmp 0x13aaa
pushq $0x23
jmp 0x13aaa
pushq $0x26
jmp 0x13aaa
pushq $0x1e
jmp 0x13aaa
pushq $0x36
jmp 0x13aaa
pushq $0x1f
jmp 0x13aaa
pushq $0x35
jmp 0x13aaa
pushq $0x27
jmp 0x13aaa
pushq $0x28
jmp 0x13aaa
pushq $0x29
jmp 0x13aaa
pushq $0x2a
jmp 0x13aaa
pushq $0x2b
jmp 0x13aaa
pushq $0x2c
jmp 0x13aaa
pushq $0x2d
jmp 0x13aaa
pushq $0x2e
jmp 0x13aaa
pushq $0x2f
jmp 0x13aaa
pushq $0x30
jmp 0x13aaa
pushq $0x31
jmp 0x13aaa
pushq $0x32
jmp 0x13aaa
pushq $0x33
jmp 0x13aaa
pushq $0x34
popq %rax
movl %eax, (%rbx,%r15)
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq
andl $0x0, 0x20(%rbx)
leaq 0x1a1d(%rip), %rsi      # 0x154e4
movq %rbx, %rdi
callq 0x3450
pushq $0x6
popq %rax
pushq $0x38
popq %r15
jmp 0x13aab