// File: /workspace/github_c_makefile_star2_O0/markdryan[P]subtilis/common/lexer.c
// Function: prv_process_token
static bool prv_process_token(subtilis_lexer_t *l, subtilis_token_t *t,
			      subtilis_error_t *err)
{
	char ch = l->buffer[l->index];

	if (prv_is_simple_operator(ch)) {
		prv_set_first(l, t, SUBTILIS_TOKEN_OPERATOR);
		return false;
	}

	if (ch == '<' || ch == '>' || ch == '+' || ch == '-' || ch == ':' ||
	    ch == '.') {
		prv_process_complex_operator(l, t, err);
		return false;
	}

	if (ch == '"') {
		prv_process_string(l, t, err);
		return false;
	}

	if (ch >= '0' && ch <= '9') {
		prv_process_decimal(l, t, err);
		return false;
	}

	if (ch == '&') {
		prv_process_hexadecimal(l, t, err);
		return false;
	}

	if (ch == '%') {
		prv_process_binary(l, t, err);
		return false;
	}

	if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z')) {
		if (prv_process_keyword(l, ch, t, err))
			return true;
		return false;
	}

	if ((ch >= 'a' && ch <= 'z') || (ch >= 'A' && ch <= 'Z') ||
	    (ch == '_')) {
		prv_process_identifier(l, t, err);
		return false;
	}

	prv_process_unknown(l, ch, t, err);

	return false;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movq %rdi, -0x10(%rbp)
movq %rsi, -0x18(%rbp)
movq %rdx, -0x20(%rbp)
movq -0x10(%rbp), %rax
movq 0x368(%rax), %rax
movq -0x10(%rbp), %rcx
movq 0x40(%rcx), %rcx
movb (%rax,%rcx), %al
movb %al, -0x21(%rbp)
movsbl -0x21(%rbp), %edi
callq 0x13a00
testb $0x1, %al
jne 0x1367c
jmp 0x13697
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movl $0x2, %edx
callq 0x13b20
movb $0x0, -0x1(%rbp)
jmp 0x13828
movsbl -0x21(%rbp), %eax
cmpl $0x3c, %eax
je 0x136cd
movsbl -0x21(%rbp), %eax
cmpl $0x3e, %eax
je 0x136cd
movsbl -0x21(%rbp), %eax
cmpl $0x2b, %eax
je 0x136cd
movsbl -0x21(%rbp), %eax
cmpl $0x2d, %eax
je 0x136cd
movsbl -0x21(%rbp), %eax
cmpl $0x3a, %eax
je 0x136cd
movsbl -0x21(%rbp), %eax
cmpl $0x2e, %eax
jne 0x136e7
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x13b50
movb $0x0, -0x1(%rbp)
jmp 0x13828
movsbl -0x21(%rbp), %eax
cmpl $0x22, %eax
jne 0x1370a
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x13d40
movb $0x0, -0x1(%rbp)
jmp 0x13828
movsbl -0x21(%rbp), %eax
cmpl $0x30, %eax
jl 0x13736
movsbl -0x21(%rbp), %eax
cmpl $0x39, %eax
jg 0x13736
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x13f10
movb $0x0, -0x1(%rbp)
jmp 0x13828
movsbl -0x21(%rbp), %eax
cmpl $0x26, %eax
jne 0x13759
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x13f70
movb $0x0, -0x1(%rbp)
jmp 0x13828
movsbl -0x21(%rbp), %eax
cmpl $0x25, %eax
jne 0x1377c
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x13fe0
movb $0x0, -0x1(%rbp)
jmp 0x13828
movsbl -0x21(%rbp), %eax
cmpl $0x61, %eax
jl 0x1378e
movsbl -0x21(%rbp), %eax
cmpl $0x7a, %eax
jle 0x137a0
movsbl -0x21(%rbp), %eax
cmpl $0x41, %eax
jl 0x137c9
movsbl -0x21(%rbp), %eax
cmpl $0x5a, %eax
jg 0x137c9
movq -0x10(%rbp), %rdi
movb -0x21(%rbp), %al
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movsbl %al, %esi
callq 0x14050
testb $0x1, %al
jne 0x137bd
jmp 0x137c3
movb $0x1, -0x1(%rbp)
jmp 0x13828
movb $0x0, -0x1(%rbp)
jmp 0x13828
movsbl -0x21(%rbp), %eax
cmpl $0x61, %eax
jl 0x137db
movsbl -0x21(%rbp), %eax
cmpl $0x7a, %eax
jle 0x137f6
movsbl -0x21(%rbp), %eax
cmpl $0x41, %eax
jl 0x137ed
movsbl -0x21(%rbp), %eax
cmpl $0x5a, %eax
jle 0x137f6
movsbl -0x21(%rbp), %eax
cmpl $0x5f, %eax
jne 0x1380d
movq -0x10(%rbp), %rdi
movq -0x18(%rbp), %rsi
movq -0x20(%rbp), %rdx
callq 0x14580
movb $0x0, -0x1(%rbp)
jmp 0x13828
movq -0x10(%rbp), %rdi
movb -0x21(%rbp), %al
movq -0x18(%rbp), %rdx
movq -0x20(%rbp), %rcx
movsbl %al, %esi
callq 0x145c0
movb $0x0, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x30, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)