// File: /workspace/github_c_makefile_star2_O3/lucvoo[P]sparse-dev/tokenize.c
// Function: quote_token
const char *quote_token(const struct token *token)
{
	static char buffer[256];

	switch (token_type(token)) {
	case TOKEN_ERROR:
		return "syntax error";

	case TOKEN_IDENT:
	case TOKEN_ZERO_IDENT:
		return show_ident(token->ident);

	case TOKEN_NUMBER:
		return token->number;

	case TOKEN_SPECIAL:
		return show_special(token->special);

	case TOKEN_CHAR: 
		return quote_char(token->string->data,
			token->string->length - 1, 0, '\'');
	case TOKEN_CHAR_EMBEDDED_0 ... TOKEN_CHAR_EMBEDDED_3:
		return quote_char(token->embedded,
			token_type(token) - TOKEN_CHAR, 0, '\'');
	case TOKEN_WIDE_CHAR: 
		return quote_char(token->string->data,
			token->string->length - 1, 'L', '\'');
	case TOKEN_WIDE_CHAR_EMBEDDED_0 ... TOKEN_WIDE_CHAR_EMBEDDED_3:
		return quote_char(token->embedded,
			token_type(token) - TOKEN_WIDE_CHAR, 'L', '\'');
	case TOKEN_STRING: 
		return quote_char(token->string->data,
			token->string->length - 1, 0, '"');
	case TOKEN_WIDE_STRING: 
		return quote_char(token->string->data,
			token->string->length - 1, 'L', '"');
	default:
		sprintf(buffer, "unhandled token type '%d' ", token_type(token));
		return buffer;
	}
}

// Assembly:
pushq %rbx
movq (%rdi), %rax
movl %eax, %edx
andl $0x3f, %edx
leal -0x2(%rdx), %ecx
cmpl $0x10, %ecx
ja 0x2e588
leaq 0x19e13(%rip), %rdx     # 0x480d0
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
andl $0x3f, %eax
movb $0x27, 0x5a340(%rip)    # 0x88610
addq $-0x6, %rax
je 0x2e37e
leaq 0x5a32f(%rip), %rcx     # 0x88610
leaq 0x5a329(%rip), %rsi     # 0x88611
xorl %edx, %edx
movzbl 0x10(%rdi,%rdx), %r8d
cmpl $0x5c, %r8d
je 0x2e2fc
cmpl $0x22, %r8d
jne 0x2e30a
addq $0x2, %rcx
movb $0x5c, (%rsi)
movb 0x10(%rdi,%rdx), %r8b
jmp 0x2e30d
movq %rsi, %rcx
movb %r8b, (%rcx)
incq %rdx
leaq 0x1(%rcx), %rsi
cmpq %rdx, %rax
jne 0x2e2ea
jmp 0x2e38e
andl $0x3f, %eax
movw $0x274c, 0x5a2e6(%rip)  # imm = 0x274C
addq $-0xb, %rax
je 0x2e387
leaq 0x5a2da(%rip), %rcx     # 0x88611
leaq 0x5a2d4(%rip), %rsi     # 0x88612
xorl %edx, %edx
movzbl 0x10(%rdi,%rdx), %r8d
cmpl $0x5c, %r8d
je 0x2e352
cmpl $0x22, %r8d
jne 0x2e360
addq $0x2, %rcx
movb $0x5c, (%rsi)
movb 0x10(%rdi,%rdx), %r8b
jmp 0x2e363
movq %rsi, %rcx
movb %r8b, (%rcx)
incq %rdx
leaq 0x1(%rcx), %rsi
cmpq %rdx, %rax
jne 0x2e340
jmp 0x2e38e
movq 0x10(%rdi), %rdi
popq %rbx
jmp 0x2de35
leaq 0x5a28c(%rip), %rsi     # 0x88611
jmp 0x2e38e
leaq 0x5a284(%rip), %rsi     # 0x88612
movw $0x27, (%rsi)
jmp 0x2e5c0
movl 0x10(%rdi), %eax
movb %al, 0x3fc0f(%rip)      # 0x6dfb0
movb $0x0, 0x3fc09(%rip)     # 0x6dfb1
cmpl $0x100, %eax            # imm = 0x100
jl 0x2e5a2
addl $0xffffff00, %eax       # imm = 0xFFFFFF00
leaq 0x364a1(%rip), %rcx     # 0x64860
leaq (%rcx,%rax,4), %rsi
leaq 0x3fbe6(%rip), %rdi     # 0x6dfb0
popq %rbx
jmp 0xe090
movq 0x10(%rdi), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
decq %rcx
movw $0x225c, 0x5a228(%rip)  # imm = 0x225C
leaq 0x5a222(%rip), %rdx     # 0x88611
leaq 0x5a21c(%rip), %rdi     # 0x88612
testl %ecx, %ecx
je 0x2e57d
xorl %esi, %esi
movzbl 0x4(%rax,%rsi), %r8d
cmpl $0x5c, %r8d
je 0x2e412
cmpl $0x22, %r8d
jne 0x2e420
addq $0x2, %rdx
movb $0x5c, (%rdi)
movb 0x4(%rax,%rsi), %r8b
jmp 0x2e423
movq %rdi, %rdx
movb %r8b, (%rdx)
incq %rsi
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rcx
jne 0x2e400
jmp 0x2e57d
leaq 0x1a001(%rip), %rbx     # 0x4843f
jmp 0x2e5c7
movq 0x10(%rdi), %rbx
jmp 0x2e5c7
movq 0x10(%rdi), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
decq %rcx
movb $0x27, 0x5a1ae(%rip)    # 0x88610
testl %ecx, %ecx
je 0x2e5ab
leaq 0x5a19f(%rip), %rdx     # 0x88610
leaq 0x5a199(%rip), %rdi     # 0x88611
xorl %esi, %esi
movzbl 0x4(%rax,%rsi), %r8d
cmpl $0x5c, %r8d
je 0x2e48c
cmpl $0x22, %r8d
jne 0x2e49a
addq $0x2, %rdx
movb $0x5c, (%rdi)
movb 0x4(%rax,%rsi), %r8b
jmp 0x2e49d
movq %rdi, %rdx
movb %r8b, (%rdx)
incq %rsi
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rcx
jne 0x2e47a
jmp 0x2e5bb
movq 0x10(%rdi), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
decq %rcx
movw $0x274c, 0x5a147(%rip)  # imm = 0x274C
testl %ecx, %ecx
je 0x2e5b4
leaq 0x5a139(%rip), %rdx     # 0x88611
leaq 0x5a133(%rip), %rdi     # 0x88612
xorl %esi, %esi
movzbl 0x4(%rax,%rsi), %r8d
cmpl $0x5c, %r8d
je 0x2e4f3
cmpl $0x22, %r8d
jne 0x2e501
addq $0x2, %rdx
movb $0x5c, (%rdi)
movb 0x4(%rax,%rsi), %r8b
jmp 0x2e504
movq %rdi, %rdx
movb %r8b, (%rdx)
incq %rsi
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rcx
jne 0x2e4e1
jmp 0x2e5bb
movq 0x10(%rdi), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
decq %rcx
movw $0x5c4c, 0x5a0e0(%rip)  # imm = 0x5C4C
movb $0x22, 0x5a0db(%rip)    # 0x88612
leaq 0x5a0d4(%rip), %rdx     # 0x88612
leaq 0x5a0ce(%rip), %rdi     # 0x88613
testl %ecx, %ecx
je 0x2e57d
xorl %esi, %esi
movzbl 0x4(%rax,%rsi), %r8d
cmpl $0x5c, %r8d
je 0x2e55d
cmpl $0x22, %r8d
jne 0x2e56b
addq $0x2, %rdx
movb $0x5c, (%rdi)
movb 0x4(%rax,%rsi), %r8b
jmp 0x2e56e
movq %rdi, %rdx
movb %r8b, (%rdx)
incq %rsi
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rcx
jne 0x2e54b
movb $0x5c, (%rdi)
movw $0x22, 0x2(%rdx)
jmp 0x2e5c0
leaq 0x47f41(%rip), %rbx     # 0x764d0
leaq 0x19ef8(%rip), %rsi     # 0x4848e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe2c0
jmp 0x2e5c7
leaq 0x3fa07(%rip), %rbx     # 0x6dfb0
jmp 0x2e5c7
leaq 0x5a05f(%rip), %rdi     # 0x88611
jmp 0x2e5bb
leaq 0x5a057(%rip), %rdi     # 0x88612
movw $0x27, (%rdi)
leaq 0x5a049(%rip), %rbx     # 0x88610
movq %rbx, %rax
popq %rbx
retq