// File: /workspace/github_cpp_makefile_star2_O3/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 0x2a6b(%rip), %rsi      # 0x1be04
movq %r14, %rdi
callq 0x30a0
movl $0x20, %r15d
testl %eax, %eax
je 0x19696
leaq 0x2a51(%rip), %rsi      # 0x1be07
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196a0
leaq 0x2a39(%rip), %rsi      # 0x1be06
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196aa
leaq 0x2a26(%rip), %rsi      # 0x1be0a
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196b4
leaq 0x2a0e(%rip), %rsi      # 0x1be09
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196be
leaq 0x2a29(%rip), %rsi      # 0x1be3b
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196c8
leaq 0x29e3(%rip), %rsi      # 0x1be0c
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196d2
leaq 0x1d15(%rip), %rsi      # 0x1b155
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196dc
leaq 0x2982(%rip), %rsi      # 0x1bdd9
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196e6
leaq 0x29a0(%rip), %rsi      # 0x1be0e
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196f0
leaq 0x298b(%rip), %rsi      # 0x1be10
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x196fa
leaq 0x1f22(%rip), %rsi      # 0x1b3be
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19704
leaq 0x2928(%rip), %rsi      # 0x1bddb
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x1970e
leaq 0x2948(%rip), %rsi      # 0x1be12
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19718
leaq 0x2934(%rip), %rsi      # 0x1be15
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19722
leaq 0x291c(%rip), %rsi      # 0x1be14
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x1972c
leaq 0x2909(%rip), %rsi      # 0x1be18
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19736
leaq 0x28f1(%rip), %rsi      # 0x1be17
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19740
leaq 0x28dd(%rip), %rsi      # 0x1be1a
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x1974a
leaq 0x28c8(%rip), %rsi      # 0x1be1c
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19751
leaq 0x28b3(%rip), %rsi      # 0x1be1e
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19758
leaq 0x28b6(%rip), %rsi      # 0x1be38
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x1975f
leaq 0x2887(%rip), %rsi      # 0x1be20
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19766
leaq 0x2873(%rip), %rsi      # 0x1be23
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x1976d
leaq 0x285f(%rip), %rsi      # 0x1be26
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19774
leaq 0x284b(%rip), %rsi      # 0x1be29
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x1977b
leaq 0x2837(%rip), %rsi      # 0x1be2c
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19782
leaq 0x2823(%rip), %rsi      # 0x1be2f
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19789
leaq 0x280f(%rip), %rsi      # 0x1be32
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19790
leaq 0x282a(%rip), %rsi      # 0x1be64
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x19797
leaq 0x27e4(%rip), %rsi      # 0x1be35
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x1979e
leaq 0x27cf(%rip), %rsi      # 0x1be37
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x197a5
leaq 0x27bb(%rip), %rsi      # 0x1be3a
movq %r14, %rdi
callq 0x30a0
testl %eax, %eax
je 0x197ac
xorl %eax, %eax
jmp 0x197d3
movl $0x15, %eax
jmp 0x197cd
movl $0x16, %eax
jmp 0x197cd
movl $0x18, %eax
jmp 0x197cd
movl $0x17, %eax
jmp 0x197cd
movl $0x19, %eax
jmp 0x197cd
movl $0x1a, %eax
jmp 0x197cd
movl $0x1d, %eax
jmp 0x197cd
movl $0x20, %eax
jmp 0x197cd
movl $0x21, %eax
jmp 0x197cd
movl $0x24, %eax
jmp 0x197cd
movl $0x25, %eax
jmp 0x197cd
movl $0x22, %eax
jmp 0x197cd
movl $0x23, %eax
jmp 0x197cd
movl $0x26, %eax
jmp 0x197cd
movl $0x1e, %eax
jmp 0x197cd
movl $0x36, %eax
jmp 0x197cd
movl $0x1f, %eax
jmp 0x197cd
movl $0x35, %eax
jmp 0x197cd
movl $0x27, %eax
jmp 0x197cd
movl $0x28, %eax
jmp 0x197cd
movl $0x29, %eax
jmp 0x197cd
movl $0x2a, %eax
jmp 0x197cd
movl $0x2b, %eax
jmp 0x197cd
movl $0x2c, %eax
jmp 0x197cd
movl $0x2d, %eax
jmp 0x197cd
movl $0x2e, %eax
jmp 0x197cd
movl $0x2f, %eax
jmp 0x197cd
movl $0x30, %eax
jmp 0x197cd
movl $0x31, %eax
jmp 0x197cd
movl $0x32, %eax
jmp 0x197cd
movl $0x33, %eax
jmp 0x197cd
movl $0x34, %eax
jmp 0x197cd
movl $0x0, 0x20(%rbx)
leaq 0x1d2a(%rip), %rsi      # 0x1b4e4
movq %rbx, %rdi
callq 0x32e0
movl $0x6, %eax
movl $0x38, %r15d
movl %eax, (%rbx,%r15)
movb $0x1, %al
addq $0x8, %rsp
popq %rbx
popq %r14
popq %r15
popq %rbp
retq