// File: /workspace/github_c_makefile_star2_O0/nimble-code[P]gh_cpp/Src/gh_cpp1.c
// Function: lex
static Tokvals
lex(void)
{	char *q;
	int c;

	skipwhite();

	if (*nowc == '\n'
	||  *nowc == '\r'
	||  *nowc == '\0')
		return DONE;

	if (isalpha(*nowc) || *nowc == '_')
	{	q = nowc++;
		while (isalnum(*nowc) || *nowc == '_' || *nowc == '-')
			nowc++;
same:		c = *nowc;
		*nowc = '\0';
		myname = emalloc(strlen(q) + 1);
		strcpy(myname, q);
		*nowc = c;

		if (misra_rules)
		for (c = 0; m_patterns[c].nm != NULL; c++)
			if (strcmp(myname, m_patterns[c].nm) == 0)
			m_rule(m_patterns[c].maj, m_patterns[c].min, m_patterns[c].nm);

		return NAME;
	}

	if (strncmp(nowc, "...", 3) == 0)
	{	nowc += 3;
		myname = "...";
		if (misra_rules) m_rule(16, 1, "elipsis");

		return NAME;
	}

	if (isdigit(*nowc))
	{	get_digit();	/* result is in myval */
		return VAL;
	}
	
	mychar = *nowc++;
	if (mychar == '\\')
	{	mychar = *nowc++;
		return ECHAR;
	}

	if (mychar == '"')	/* string */
	{	q = nowc - 1;
		lookfor('"');
		goto same;	/* store as NAME */
	}

	if (mychar == '\'')	/* char constant */
	{	rule_check();
		q = nowc - 1;
		lookfor('\'');
		goto same;	/* store as as NAME */
	}

	digraphs();
	trigraphs();

	if (misra_rules
	&&  mychar == ';'
	&& !incomment
	&& !not_printing[level]
	&&  stack_depth <= 1)
		sawcode++;

	return CHAR;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
callq 0x4690
movq 0xf49c(%rip), %rax      # 0x14fa0
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x5b2a
movq 0xf48d(%rip), %rax      # 0x14fa0
movsbl (%rax), %eax
cmpl $0xd, %eax
je 0x5b2a
movq 0xf47e(%rip), %rax      # 0x14fa0
movsbl (%rax), %eax
cmpl $0x0, %eax
jne 0x5b36
movl $0x0, -0x4(%rbp)
jmp 0x5e9a
callq 0x41a0
movq (%rax), %rax
movq 0xf45b(%rip), %rcx      # 0x14fa0
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x400, %eax            # imm = 0x400
cmpl $0x0, %eax
jne 0x5b6c
movq 0xf440(%rip), %rax      # 0x14fa0
movsbl (%rax), %eax
cmpl $0x5f, %eax
jne 0x5cf5
movq 0xf42d(%rip), %rax      # 0x14fa0
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0xf41f(%rip)      # 0x14fa0
movq %rax, -0x10(%rbp)
callq 0x41a0
movq (%rax), %rax
movq 0xf40c(%rip), %rcx      # 0x14fa0
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %ecx
andl $0x8, %ecx
movb $0x1, %al
cmpl $0x0, %ecx
movb %al, -0x15(%rbp)
jne 0x5bd2
movq 0xf3ee(%rip), %rax      # 0x14fa0
movsbl (%rax), %ecx
movb $0x1, %al
cmpl $0x5f, %ecx
movb %al, -0x15(%rbp)
je 0x5bd2
movq 0xf3da(%rip), %rax      # 0x14fa0
movsbl (%rax), %eax
cmpl $0x2d, %eax
sete %al
movb %al, -0x15(%rbp)
movb -0x15(%rbp), %al
testb $0x1, %al
jne 0x5bdb
jmp 0x5bef
movq 0xf3be(%rip), %rax      # 0x14fa0
addq $0x1, %rax
movq %rax, 0xf3b3(%rip)      # 0x14fa0
jmp 0x5b85
jmp 0x5bf1
movq 0xf3a8(%rip), %rax      # 0x14fa0
movsbl (%rax), %eax
movl %eax, -0x14(%rbp)
movq 0xf39b(%rip), %rax      # 0x14fa0
movb $0x0, (%rax)
movq -0x10(%rbp), %rdi
callq 0x4080
addq $0x1, %rax
movl %eax, %edi
callq 0x4320
movq %rax, 0x107c5(%rip)     # 0x163e8
movq 0x107be(%rip), %rdi     # 0x163e8
movq -0x10(%rbp), %rsi
callq 0x4060
movl -0x14(%rbp), %eax
movb %al, %cl
movq 0xf361(%rip), %rax      # 0x14fa0
movb %cl, (%rax)
cmpl $0x0, 0xf34c(%rip)      # 0x14f94
je 0x5ce9
movl $0x0, -0x14(%rbp)
movslq -0x14(%rbp), %rcx
leaq 0xe4a0(%rip), %rax      # 0x14100
shlq $0x4, %rcx
addq %rcx, %rax
cmpq $0x0, (%rax)
je 0x5ce7
movq 0x10774(%rip), %rdi     # 0x163e8
movslq -0x14(%rbp), %rcx
leaq 0xe481(%rip), %rax      # 0x14100
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rsi
callq 0x4100
cmpl $0x0, %eax
jne 0x5cd7
movslq -0x14(%rbp), %rcx
leaq 0xe462(%rip), %rax      # 0x14100
shlq $0x4, %rcx
addq %rcx, %rax
movl 0x8(%rax), %edi
movslq -0x14(%rbp), %rcx
leaq 0xe44d(%rip), %rax      # 0x14100
shlq $0x4, %rcx
addq %rcx, %rax
movl 0xc(%rax), %esi
movslq -0x14(%rbp), %rcx
leaq 0xe438(%rip), %rax      # 0x14100
shlq $0x4, %rcx
addq %rcx, %rax
movq (%rax), %rdx
callq 0xca50
jmp 0x5cd9
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x5c55
jmp 0x5ce9
movl $0x1, -0x4(%rbp)
jmp 0x5e9a
movq 0xf2a4(%rip), %rdi      # 0x14fa0
leaq 0xae39(%rip), %rsi      # 0x10b3c
movl $0x3, %edx
callq 0x4050
cmpl $0x0, %eax
jne 0x5d5d
movq 0xf287(%rip), %rax      # 0x14fa0
addq $0x3, %rax
movq %rax, 0xf27c(%rip)      # 0x14fa0
leaq 0xae11(%rip), %rax      # 0x10b3c
movq %rax, 0x106b6(%rip)     # 0x163e8
cmpl $0x0, 0xf25b(%rip)      # 0x14f94
je 0x5d51
movl $0x10, %edi
movl $0x1, %esi
leaq 0xadf4(%rip), %rdx      # 0x10b40
callq 0xca50
movl $0x1, -0x4(%rbp)
jmp 0x5e9a
callq 0x41a0
movq (%rax), %rax
movq 0xf234(%rip), %rcx      # 0x14fa0
movsbl (%rcx), %ecx
movslq %ecx, %rcx
movzwl (%rax,%rcx,2), %eax
andl $0x800, %eax            # imm = 0x800
cmpl $0x0, %eax
je 0x5d91
callq 0x60e0
movl $0x4, -0x4(%rbp)
jmp 0x5e9a
movq 0xf208(%rip), %rax      # 0x14fa0
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0xf1fa(%rip)      # 0x14fa0
movb (%rax), %al
movb %al, 0x10636(%rip)      # 0x163e4
movsbl 0x1062f(%rip), %eax     # 0x163e4
cmpl $0x5c, %eax
jne 0x5de3
movq 0xf1df(%rip), %rax      # 0x14fa0
movq %rax, %rcx
addq $0x1, %rcx
movq %rcx, 0xf1d1(%rip)      # 0x14fa0
movb (%rax), %al
movb %al, 0x1060d(%rip)      # 0x163e4
movl $0x3, -0x4(%rbp)
jmp 0x5e9a
movsbl 0x105fa(%rip), %eax     # 0x163e4
cmpl $0x22, %eax
jne 0x5e0d
movq 0xf1aa(%rip), %rax      # 0x14fa0
addq $-0x1, %rax
movq %rax, -0x10(%rbp)
movl $0x22, %edi
callq 0x6320
jmp 0x5bf1
movsbl 0x105d0(%rip), %eax     # 0x163e4
cmpl $0x27, %eax
jne 0x5e3c
callq 0x6400
movq 0xf17b(%rip), %rax      # 0x14fa0
addq $-0x1, %rax
movq %rax, -0x10(%rbp)
movl $0x27, %edi
callq 0x6320
jmp 0x5bf1
callq 0x64e0
callq 0x6600
cmpl $0x0, 0xf147(%rip)      # 0x14f94
je 0x5e93
movsbl 0x1058e(%rip), %eax     # 0x163e4
cmpl $0x3b, %eax
jne 0x5e93
cmpl $0x0, 0x10592(%rip)     # 0x163f4
jne 0x5e93
movslq 0x10149(%rip), %rcx     # 0x15fb4
leaq 0x1014e(%rip), %rax     # 0x15fc0
cmpl $0x0, (%rax,%rcx,4)
jne 0x5e93
leaq 0x1270d(%rip), %rax     # 0x1858c
cmpl $0x1, (%rax)
jg 0x5e93
movl 0x10566(%rip), %eax     # 0x163f0
addl $0x1, %eax
movl %eax, 0x1055d(%rip)     # 0x163f0
movl $0x2, -0x4(%rbp)
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)