// File: /workspace/github_c_makefile_star2_O1/georgeweigt[P]sassafras/sassafras.c
// Function: scan1
int
scan1(void)
{
	int i, n;

	// skip spaces

	while (*inp && *inp <= ' ')
		inp++;

	token_str = inp;

	// end?

	if (*inp == '\0') {
		strbuf[0] = 0;
		return 0;
	}

	// name?

	if (isalpha(*inp) || *inp == '_') {
		for (i = 0; i < STRBUFLEN; i++) {
			if (isalnum(*inp) || *inp == '_')
				strbuf[i] = toupper(*inp++);
			else
				break;
		}
		if (i == STRBUFLEN)
			stop("Name too long");
		strbuf[i] = 0;
		return NAME;
	}

	// number?

	if (isdigit(*inp)
	|| (inp[0] == '.' && isdigit(inp[1]))
	|| ((*inp == '+' || *inp == '-')
	&& (isdigit(inp[1]) || (inp[1] == '.' && isdigit(inp[2]))))) {
		if (*inp == '+' || *inp == '-')
			inp++;
		while (isdigit(*inp))
			inp++;
		if (*inp == '.') {
			inp++;
			while (isdigit(*inp))
				inp++;
		}
		if (*inp == 'E' || *inp == 'e') {
			inp++;
			if (*inp == '+' || *inp == '-')
				inp++;
			while (isdigit(*inp))
				inp++;
		}
		n = (int) (inp - token_str);
		if (n >= STRBUFLEN)
			stop("Number format?");
		for (i = 0; i < n; i++)
			strbuf[i] = token_str[i];
		strbuf[i] = 0;
		n = sscanf(strbuf, "%lg", &token_num);
		if (n < 1)
			stop("Number format?");
		return NUMBER;
	}

	// string?

	if (*inp == '\'') {
		inp++;
		for (i = 0; i < STRBUFLEN; i++) {
			if (*inp == 0)
				break;
			if (*inp == '\r' || *inp == '\n')
				stop("Runaway string");
			if (inp[0] == '\'' && inp[1] == '\'') {
				strbuf[i] = *inp;
				inp += 2;
				continue;
			}
			if (*inp == '\'') {
				inp++;
				break;
			}
			strbuf[i] = *inp++;
		}
		if (i == STRBUFLEN)
			stop("String too long");
		strbuf[i] = 0;
		return STRING;
	}

	if (*inp == '"') {
		inp++;
		for (i = 0; i < STRBUFLEN; i++) {
			if (*inp == 0)
				break;
			if (*inp == '\r' || *inp == '\n')
				stop("Runaway string");
			if (inp[0] == '"' && inp[1] == '"') {
				strbuf[i] = *inp;
				inp += 2;
				continue;
			}
			if (*inp == '"') {
				inp++;
				break;
			}
			strbuf[i] = *inp++;
		}
		if (i == STRBUFLEN)
			stop("String too long");
		strbuf[i] = 0;
		return STRING;
	}

	// double at sign?

	if (inp[0] == '@' && inp[1] == '@') {
		strcpy(strbuf, "@@");
		inp += 2;
		return ATAT;
	}

	// double asterisk?

	if (inp[0] == '*' && inp[1] == '*') {
		strcpy(strbuf, "**");
		inp += 2;
		return STARSTAR;
	}

	// anything else is a single character token

	strbuf[0] = *inp;
	strbuf[1] = 0;

	return *inp++;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r12
pushq %rbx
movq 0x5072(%rip), %r14      # 0xf898
movb (%r14), %al
testb %al, %al
sete %cl
cmpb $0x21, %al
setge %al
orb %cl, %al
jne 0xa852
incq %r14
movq %r14, 0x5057(%rip)      # 0xf898
movb (%r14), %al
incq %r14
testb %al, %al
je 0xa84f
cmpb $0x21, %al
jl 0xa83a
decq %r14
movq %r14, 0xb45f(%rip)      # 0x15cb8
movsbq (%r14), %r15
testq %r15, %r15
je 0xa8f8
callq 0x2230
movq %rax, %rbx
cmpb $0x5f, %r15b
je 0xa906
movq (%rbx), %rcx
movzwl (%rcx,%r15,2), %edx
movl %edx, %eax
andl $0x400, %eax            # imm = 0x400
jne 0xa906
movzbl %r15b, %eax
btl $0xb, %edx
jb 0xaa24
leal -0x22(%rax), %edx
cmpl $0xc, %edx
ja 0xabf1
leaq 0x99a(%rip), %rsi       # 0xb244
movslq (%rsi,%rdx,4), %rdi
addq %rsi, %rdi
jmpq *%rdi
movsbq 0x1(%r14), %rdx
testb $0x8, 0x1(%rcx,%rdx,2)
jne 0xaa24
cmpb $0x2e, %dl
jne 0xa8d8
movsbq 0x2(%r14), %rdx
testb $0x8, 0x1(%rcx,%rdx,2)
jne 0xaa24
cmpl $0x29, %eax
jg 0xabec
cmpl $0x22, %eax
je 0xa9a8
cmpl $0x27, %eax
je 0xab6b
jmp 0xac4e
movb $0x0, 0x5791(%rip)      # 0x10090
xorl %eax, %eax
jmp 0xac8a
xorl %r15d, %r15d
leaq 0x5780(%rip), %r14      # 0x10090
movq 0x4f81(%rip), %r12      # 0xf898
movsbq (%r12), %rax
cmpq $0x5f, %rax
je 0xa92e
movq (%rbx), %rcx
movzwl (%rcx,%rax,2), %eax
andl $0x8, %eax
je 0xa960
callq 0x2030
movq (%rax), %rax
leaq 0x1(%r12), %rcx
movq %rcx, 0x4f56(%rip)      # 0xf898
movsbq (%r12), %rcx
movb (%rax,%rcx,4), %al
movb %al, (%r15,%r14)
incq %r15
cmpq $0x3e8, %r15            # imm = 0x3E8
jne 0xa910
movl $0x3e8, %r15d           # imm = 0x3E8
cmpl $0x3e8, %r15d           # imm = 0x3E8
je 0xacb5
movl %r15d, %eax
movb $0x0, (%rax,%r14)
movl $0x3e9, %eax            # imm = 0x3E9
jmp 0xac8a
movsbq 0x1(%r14), %rsi
testb $0x8, 0x1(%rcx,%rsi,2)
jne 0xaa24
cmpl $0xb, %edx
ja 0xabf1
leaq 0x8d9(%rip), %rsi       # 0xb278
movslq (%rsi,%rdx,4), %rdx
addq %rsi, %rdx
jmpq *%rdx
incq %r14
movq %r14, 0x4ee6(%rip)      # 0xf898
xorl %ecx, %ecx
leaq 0x56d5(%rip), %rax      # 0x10090
movzbl (%r14), %edx
testl %edx, %edx
je 0xac77
cmpl $0xd, %edx
je 0xac93
cmpl $0xa, %edx
je 0xac93
cmpb $0x22, %dl
jne 0xa9fe
cmpb $0x22, 0x1(%r14)
jne 0xa9f5
movb %dl, (%rcx,%rax)
addq $0x2, %r14
movq %r14, 0x4ea5(%rip)      # 0xf898
jmp 0xaa13
cmpb $0x22, %dl
je 0xac6d
leaq 0x1(%r14), %rdx
movq %rdx, 0x4e8f(%rip)      # 0xf898
movb (%r14), %sil
movb %sil, (%rcx,%rax)
movq %rdx, %r14
incq %rcx
cmpq $0x3e8, %rcx            # imm = 0x3E8
jne 0xa9bb
jmp 0xabe2
cmpl $0x2d, %eax
je 0xaa2e
cmpl $0x2b, %eax
jne 0xaa39
leaq 0x1(%r14), %rax
movq %rax, 0x4e5f(%rip)      # 0xf898
movq (%rbx), %rdx
movq 0x4e55(%rip), %rax      # 0xf898
movsbq (%rax), %rcx
testb $0x8, 0x1(%rdx,%rcx,2)
je 0xaa6c
incq %rax
movq %rax, 0x4e40(%rip)      # 0xf898
movq (%rbx), %rdx
movsbq (%rax), %rcx
incq %rax
testb $0x8, 0x1(%rdx,%rcx,2)
jne 0xaa51
decq %rax
cmpb $0x2e, %cl
jne 0xaa8c
incq %rax
movq %rax, 0x4e1d(%rip)      # 0xf898
movq (%rbx), %rcx
movsbq (%rax), %rdx
incq %rax
testb $0x8, 0x1(%rcx,%rdx,2)
jne 0xaa74
movq 0x4e05(%rip), %rax      # 0xf898
movzbl (%rax), %ecx
orl $0x20, %ecx
cmpl $0x65, %ecx
jne 0xaaf2
leaq 0x1(%rax), %rcx
movq %rcx, 0x4def(%rip)      # 0xf898
movzbl 0x1(%rax), %ecx
cmpl $0x2d, %ecx
je 0xaab7
cmpl $0x2b, %ecx
jne 0xaac2
addq $0x2, %rax
movq %rax, 0x4dd6(%rip)      # 0xf898
movq (%rbx), %rcx
movq 0x4dcc(%rip), %rax      # 0xf898
movsbq (%rax), %rdx
testb $0x8, 0x1(%rcx,%rdx,2)
je 0xaaf2
incq %rax
movq %rax, 0x4db7(%rip)      # 0xf898
movq (%rbx), %rcx
movsbq (%rax), %rdx
incq %rax
testb $0x8, 0x1(%rcx,%rdx,2)
jne 0xaada
movq 0x4d9f(%rip), %rax      # 0xf898
subq %r14, %rax
cmpl $0x3e7, %eax            # imm = 0x3E7
jg 0xab5a
testl %eax, %eax
jle 0xab29
andl $0x7fffffff, %eax       # imm = 0x7FFFFFFF
xorl %ecx, %ecx
leaq 0x557b(%rip), %rdx      # 0x10090
movb (%r14,%rcx), %sil
movb %sil, (%rcx,%rdx)
incq %rcx
cmpq %rcx, %rax
jne 0xab15
movl %ecx, %eax
jmp 0xab2b
xorl %eax, %eax
leaq 0x555e(%rip), %rdi      # 0x10090
movb $0x0, (%rax,%rdi)
leaq 0x96d(%rip), %rsi       # 0xb4aa
leaq 0x938c(%rip), %rdx      # 0x13ed0
xorl %eax, %eax
callq 0x2190
movl %eax, %ecx
movl $0x3ea, %eax            # imm = 0x3EA
testl %ecx, %ecx
jg 0xac8a
callq 0xa74a
leaq 0xfd3(%rip), %rdi       # 0xbb39
jmp 0xac9f
incq %r14
movq %r14, 0x4d23(%rip)      # 0xf898
xorl %ecx, %ecx
leaq 0x5512(%rip), %rax      # 0x10090
movzbl (%r14), %edx
testl %edx, %edx
je 0xac77
cmpl $0xd, %edx
je 0xac93
cmpl $0xa, %edx
je 0xac93
cmpb $0x27, %dl
jne 0xabc1
cmpb $0x27, 0x1(%r14)
jne 0xabb8
movb %dl, (%rcx,%rax)
addq $0x2, %r14
movq %r14, 0x4ce2(%rip)      # 0xf898
jmp 0xabd6
cmpb $0x27, %dl
je 0xac6d
leaq 0x1(%r14), %rdx
movq %rdx, 0x4ccc(%rip)      # 0xf898
movb (%r14), %sil
movb %sil, (%rcx,%rax)
movq %rdx, %r14
incq %rcx
cmpq $0x3e8, %rcx            # imm = 0x3E8
jne 0xab7e
movl $0x3e8, %ecx            # imm = 0x3E8
jmp 0xac77
cmpl $0x2a, %eax
je 0xac25
cmpl $0x40, %eax
jne 0xac4e
cmpb $0x40, 0x1(%r14)
jne 0xac1f
movb $0x0, 0x548e(%rip)      # 0x10092
movw $0x4040, 0x5483(%rip)   # imm = 0x4040
addq $0x2, %r14
movq %r14, 0x4c80(%rip)      # 0xf898
movl $0x3ec, %eax            # imm = 0x3EC
jmp 0xac8a
cmpb $0x2a, %r15b
jne 0xac4e
cmpb $0x2a, 0x1(%r14)
jne 0xac4e
movb $0x0, 0x545f(%rip)      # 0x10092
movw $0x2a2a, 0x5454(%rip)   # imm = 0x2A2A
addq $0x2, %r14
movq %r14, 0x4c51(%rip)      # 0xf898
movl $0x3ed, %eax            # imm = 0x3ED
jmp 0xac8a
movb %r15b, 0x543b(%rip)     # 0x10090
movb $0x0, 0x5435(%rip)      # 0x10091
leaq 0x1(%r14), %rax
movq %rax, 0x4c31(%rip)      # 0xf898
movsbl (%r14), %eax
jmp 0xac8a
incq %r14
movq %r14, 0x4c21(%rip)      # 0xf898
cmpl $0x3e8, %ecx            # imm = 0x3E8
je 0xacc3
movl %ecx, %ecx
movb $0x0, (%rcx,%rax)
movl $0x3eb, %eax            # imm = 0x3EB
popq %rbx
popq %r12
popq %r14
popq %r15
popq %rbp
retq
callq 0xa74a
leaq 0xea9(%rip), %rdi       # 0xbb48
callq 0x4081
leaq 0xaf35(%rip), %rdi      # 0x15be0
movl $0x1, %esi
callq 0x21b0
callq 0xa74a
leaq 0xe6a(%rip), %rdi       # 0xbb2b
jmp 0xac9f
leaq 0xe8d(%rip), %rdi       # 0xbb57
callq 0x26f3