// File: /workspace/github_c_makefile_star2_O1/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 0x2ebb8
leaq 0x1a883(%rip), %rdx     # 0x49170
movslq (%rdx,%rcx,4), %rcx
addq %rdx, %rcx
jmpq *%rcx
andl $0x3f, %eax
movb $0x27, 0x5ad10(%rip)    # 0x89610
addq $-0x6, %rax
je 0x2e9ae
leaq 0x5acff(%rip), %rcx     # 0x89610
leaq 0x5acf9(%rip), %rsi     # 0x89611
xorl %edx, %edx
movzbl 0x10(%rdi,%rdx), %r8d
cmpl $0x5c, %r8d
je 0x2e92c
cmpl $0x22, %r8d
jne 0x2e935
addq $0x2, %rcx
movb $0x5c, (%rsi)
jmp 0x2e938
movq %rsi, %rcx
movb 0x10(%rdi,%rdx), %sil
movb %sil, (%rcx)
incq %rdx
leaq 0x1(%rcx), %rsi
cmpq %rdx, %rax
jne 0x2e91a
jmp 0x2e9be
andl $0x3f, %eax
movw $0x274c, 0x5acb6(%rip)  # imm = 0x274C
addq $-0xb, %rax
je 0x2e9b7
leaq 0x5acaa(%rip), %rcx     # 0x89611
leaq 0x5aca4(%rip), %rsi     # 0x89612
xorl %edx, %edx
movzbl 0x10(%rdi,%rdx), %r8d
cmpl $0x5c, %r8d
je 0x2e982
cmpl $0x22, %r8d
jne 0x2e98b
addq $0x2, %rcx
movb $0x5c, (%rsi)
jmp 0x2e98e
movq %rsi, %rcx
movb 0x10(%rdi,%rdx), %sil
movb %sil, (%rcx)
incq %rdx
leaq 0x1(%rcx), %rsi
cmpq %rdx, %rax
jne 0x2e970
jmp 0x2e9be
movq 0x10(%rdi), %rdi
popq %rbx
jmp 0x2e465
leaq 0x5ac5c(%rip), %rsi     # 0x89611
jmp 0x2e9be
leaq 0x5ac54(%rip), %rsi     # 0x89612
movw $0x27, (%rsi)
jmp 0x2ebf0
movl 0x10(%rdi), %eax
movb %al, 0x405df(%rip)      # 0x6efb0
movb $0x0, 0x405d9(%rip)     # 0x6efb1
cmpl $0x100, %eax            # imm = 0x100
jl 0x2ebd2
addl $0xffffff00, %eax       # imm = 0xFFFFFF00
leaq 0x36e71(%rip), %rcx     # 0x65860
leaq (%rcx,%rax,4), %rsi
leaq 0x405b6(%rip), %rdi     # 0x6efb0
popq %rbx
jmp 0xe090
movq 0x10(%rdi), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
decq %rcx
movw $0x225c, 0x5abf8(%rip)  # imm = 0x225C
leaq 0x5abf2(%rip), %rdx     # 0x89611
leaq 0x5abec(%rip), %rdi     # 0x89612
testl %ecx, %ecx
je 0x2ebad
xorl %esi, %esi
movzbl 0x4(%rax,%rsi), %r8d
cmpl $0x5c, %r8d
je 0x2ea42
cmpl $0x22, %r8d
jne 0x2ea4b
addq $0x2, %rdx
movb $0x5c, (%rdi)
jmp 0x2ea4e
movq %rdi, %rdx
movb 0x4(%rax,%rsi), %dil
movb %dil, (%rdx)
incq %rsi
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rcx
jne 0x2ea30
jmp 0x2ebad
leaq 0x1aa61(%rip), %rbx     # 0x494cf
jmp 0x2ebf7
movq 0x10(%rdi), %rbx
jmp 0x2ebf7
movq 0x10(%rdi), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
decq %rcx
movb $0x27, 0x5ab7e(%rip)    # 0x89610
testl %ecx, %ecx
je 0x2ebdb
leaq 0x5ab6f(%rip), %rdx     # 0x89610
leaq 0x5ab69(%rip), %rdi     # 0x89611
xorl %esi, %esi
movzbl 0x4(%rax,%rsi), %r8d
cmpl $0x5c, %r8d
je 0x2eabc
cmpl $0x22, %r8d
jne 0x2eac5
addq $0x2, %rdx
movb $0x5c, (%rdi)
jmp 0x2eac8
movq %rdi, %rdx
movb 0x4(%rax,%rsi), %dil
movb %dil, (%rdx)
incq %rsi
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rcx
jne 0x2eaaa
jmp 0x2ebeb
movq 0x10(%rdi), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
decq %rcx
movw $0x274c, 0x5ab17(%rip)  # imm = 0x274C
testl %ecx, %ecx
je 0x2ebe4
leaq 0x5ab09(%rip), %rdx     # 0x89611
leaq 0x5ab03(%rip), %rdi     # 0x89612
xorl %esi, %esi
movzbl 0x4(%rax,%rsi), %r8d
cmpl $0x5c, %r8d
je 0x2eb23
cmpl $0x22, %r8d
jne 0x2eb2c
addq $0x2, %rdx
movb $0x5c, (%rdi)
jmp 0x2eb2f
movq %rdi, %rdx
movb 0x4(%rax,%rsi), %dil
movb %dil, (%rdx)
incq %rsi
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rcx
jne 0x2eb11
jmp 0x2ebeb
movq 0x10(%rdi), %rax
movl (%rax), %ecx
andl $0x7fffffff, %ecx       # imm = 0x7FFFFFFF
decq %rcx
movw $0x5c4c, 0x5aab0(%rip)  # imm = 0x5C4C
movb $0x22, 0x5aaab(%rip)    # 0x89612
leaq 0x5aaa4(%rip), %rdx     # 0x89612
leaq 0x5aa9e(%rip), %rdi     # 0x89613
testl %ecx, %ecx
je 0x2ebad
xorl %esi, %esi
movzbl 0x4(%rax,%rsi), %r8d
cmpl $0x5c, %r8d
je 0x2eb8d
cmpl $0x22, %r8d
jne 0x2eb96
addq $0x2, %rdx
movb $0x5c, (%rdi)
jmp 0x2eb99
movq %rdi, %rdx
movb 0x4(%rax,%rsi), %dil
movb %dil, (%rdx)
incq %rsi
leaq 0x1(%rdx), %rdi
cmpq %rsi, %rcx
jne 0x2eb7b
movb $0x5c, (%rdi)
movw $0x22, 0x2(%rdx)
jmp 0x2ebf0
leaq 0x48911(%rip), %rbx     # 0x774d0
leaq 0x1a958(%rip), %rsi     # 0x4951e
movq %rbx, %rdi
xorl %eax, %eax
callq 0xe2c0
jmp 0x2ebf7
leaq 0x403d7(%rip), %rbx     # 0x6efb0
jmp 0x2ebf7
leaq 0x5aa2f(%rip), %rdi     # 0x89611
jmp 0x2ebeb
leaq 0x5aa27(%rip), %rdi     # 0x89612
movw $0x27, (%rdi)
leaq 0x5aa19(%rip), %rbx     # 0x89610
movq %rbx, %rax
popq %rbx
retq