// File: /workspace/github_cpp_makefile_star2_O3/iamlouk[P]asbi/src/tokenizer.cc
// Function: tok::to_string[abi:cxx11](tok::Token)
std::string tok::to_string(Token token) {
	switch (token.type) {
	case Identifier:
		return std::string("Identifier(") + *(token.str) + ")";
	case Int:
	 	return std::string("Int(") + std::to_string(token.integer) + ")";
	case Real:
		return std::string("Real(") + std::to_string(token.real) + ")";
	case String:
		return std::string("String(\"") + *(token.str) + "\")";
	case Bool:
		return std::string("Bool(") + (token.integer ? "true" : "false") + ")";
	case Nil:       return std::string("Nil");
	case Assign:    return std::string("Assign");
	case Declare:   return std::string("Declare");
	case Plus:      return std::string("Plus");
	case Minus:     return std::string("Minus");
	case Mul:       return std::string("Mul");
	case Div:       return std::string("Div");
	case Arrow:     return std::string("Arrow");
	case KeyValue:  return std::string("KeyValue");
	case Equals:    return std::string("Equals");
	case EqualsNot: return std::string("EqualsNot");
	case Smaller:   return std::string("Smaller");
	case Bigger:    return std::string("Bigger");
	case Not:       return std::string("Not");
	case Or:        return std::string("Or");
	case And:       return std::string("And");
	case SmallerOrEqual:
		return std::string("SmallerOrEqual");
	case BiggerOrEqual:
		return std::string("BiggerOrEqual");
	case LeftBracket:
		return std::string("LeftBracket");
	case RightBracket:
		return std::string("RightBracket");
	case LeftCurlyBracket:
		return std::string("LeftCurlyBracket");
	case RightCurlyBracket:
		return std::string("RightCurlyBracket");
	case LeftSquareBracket:
		return std::string("LeftSquareBracket");
	case RightSquareBracket:
		return std::string("RightSquareBracket");
	case DoubleColon:
		return std::string("DoubleColon");
	case Comma:     return std::string("Comma");
	case Semicolon: return std::string("Semicolon");
	case Colon:     return std::string("Colon");
	case Dot:       return std::string("Dot");
	case If:        return std::string("If");
	case Else:      return std::string("Else");
	case For:       return std::string("For");
	case EOFTok:    return std::string("EOF");
	}
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x68, %rsp
movq %rdx, %r14
movq %rdi, %rbx
movl %esi, %eax
leaq 0x103f6(%rip), %rcx     # 0x173a8
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x1049f(%rip), %rsi     # 0x1746a
leaq 0x104a3(%rip), %rdx     # 0x17475
leaq 0x28(%rsp), %rdi
callq 0x6646
movq (%r14), %rsi
movq 0x8(%r14), %rdx
leaq 0x28(%rsp), %rdi
callq 0x50e0
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x75d5
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x75de
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x106ec(%rip), %rsi     # 0x17715
leaq 0x106e8(%rip), %rdx     # 0x17718
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1054d(%rip), %rsi     # 0x17590
leaq 0x1054a(%rip), %rdx     # 0x17594
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10538(%rip), %rsi     # 0x17595
leaq 0x10534(%rip), %rdx     # 0x17598
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x104d1(%rip), %rsi     # 0x17548
leaq 0x104db(%rip), %rdx     # 0x17559
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x104fc(%rip), %rsi     # 0x1758d
leaq 0x104f7(%rip), %rdx     # 0x1758f
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1042e(%rip), %rsi     # 0x174d9
leaq 0x1042e(%rip), %rdx     # 0x174e0
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10403(%rip), %rsi     # 0x174c8
leaq 0x10402(%rip), %rdx     # 0x174ce
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1048e(%rip), %rsi     # 0x1756d
leaq 0x10492(%rip), %rdx     # 0x17578
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x103bc(%rip), %rsi     # 0x174b5
leaq 0x103b8(%rip), %rdx     # 0x174b8
jmp 0x7555
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x10378(%rip), %rsi     # 0x1748d
leaq 0x10376(%rip), %rdx     # 0x17492
leaq 0x28(%rsp), %rdi
callq 0x6646
testl %r14d, %r14d
leaq 0x10319(%rip), %rax     # 0x17449
leaq 0x1030d(%rip), %rsi     # 0x17444
cmoveq %rax, %rsi
leaq 0x28(%rsp), %rdi
callq 0x5630
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x756f
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x7578
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10338(%rip), %rsi     # 0x174b9
leaq 0x10336(%rip), %rdx     # 0x174be
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10310(%rip), %rsi     # 0x174ab
leaq 0x1030e(%rip), %rdx     # 0x174b0
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10370(%rip), %rsi     # 0x17525
leaq 0x10379(%rip), %rdx     # 0x17535
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10349(%rip), %rsi     # 0x17518
leaq 0x1034e(%rip), %rdx     # 0x17524
jmp 0x7555
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x10290(%rip), %rsi     # 0x1747b
leaq 0x1028e(%rip), %rdx     # 0x17480
leaq 0x28(%rsp), %rdi
callq 0x6646
movq %r14, %xmm0
movq 0x19d98(%rip), %rsi     # 0x20fa0
leaq 0x10394(%rip), %rcx     # 0x175a3
leaq 0x48(%rsp), %rdi
movl $0x148, %edx            # imm = 0x148
movb $0x1, %al
callq 0x7b8c
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %r8
movq 0x50(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r15, %rcx
je 0x7242
movq 0x38(%rsp), %rdi
movq 0x48(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x7269
leaq 0x58(%rsp), %r9
movl $0xf, %edi
cmpq %r9, %rsi
je 0x7260
movq 0x58(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x765f
leaq 0x28(%rsp), %rdi
callq 0x50e0
jmp 0x766d
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10249(%rip), %rsi     # 0x174cf
leaq 0x1024b(%rip), %rdx     # 0x174d8
jmp 0x7555
leaq 0x38(%rsp), %r15
movq %r15, -0x10(%r15)
leaq 0x101df(%rip), %rsi     # 0x17481
leaq 0x101e0(%rip), %rdx     # 0x17489
leaq 0x28(%rsp), %rdi
callq 0x6646
movq (%r14), %rsi
movq 0x8(%r14), %rdx
leaq 0x28(%rsp), %rdi
callq 0x50e0
leaq 0x18(%rsp), %r14
movq %r14, -0x10(%r14)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x75a2
movq %rdx, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x75ab
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1019e(%rip), %rsi     # 0x1749e
leaq 0x1019e(%rip), %rdx     # 0x174a5
jmp 0x7555
leaq 0x38(%rsp), %r12
movq %r12, -0x10(%r12)
leaq 0x10159(%rip), %rsi     # 0x17476
leaq 0x10156(%rip), %rdx     # 0x1747a
leaq 0x28(%rsp), %rdi
callq 0x6646
movl %r14d, %ebp
negl %ebp
cmovsl %r14d, %ebp
movl $0x1, %r15d
cmpl $0xa, %ebp
jb 0x7767
movl $0x4, %r15d
movl $0xd1b71759, %eax       # imm = 0xD1B71759
movl %ebp, %ecx
cmpl $0x63, %ecx
jbe 0x775e
cmpl $0x3e7, %ecx            # imm = 0x3E7
jbe 0x7764
cmpl $0x2710, %ecx           # imm = 0x2710
jb 0x7767
movl %ecx, %edx
imulq %rax, %rdx
shrq $0x2d, %rdx
addl $0x4, %r15d
cmpl $0x1869f, %ecx          # imm = 0x1869F
movl %edx, %ecx
ja 0x7353
addl $-0x3, %r15d
jmp 0x7767
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x101d0(%rip), %rsi     # 0x17573
leaq 0x101ce(%rip), %rdx     # 0x17578
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10124(%rip), %rsi     # 0x174e1
leaq 0x10123(%rip), %rdx     # 0x174e7
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x100fe(%rip), %rsi     # 0x174d5
leaq 0x100fa(%rip), %rdx     # 0x174d8
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x100a2(%rip), %rsi     # 0x17493
leaq 0x1009e(%rip), %rdx     # 0x17496
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x100dd(%rip), %rsi     # 0x174e8
leaq 0x100d8(%rip), %rdx     # 0x174ea
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1009a(%rip), %rsi     # 0x174bf
leaq 0x1009b(%rip), %rdx     # 0x174c7
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10058(%rip), %rsi     # 0x17497
leaq 0x10057(%rip), %rdx     # 0x1749d
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10096(%rip), %rsi     # 0x174ef
leaq 0x1009d(%rip), %rdx     # 0x174fd
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1003e(%rip), %rsi     # 0x174b1
leaq 0x1003a(%rip), %rdx     # 0x174b4
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10019(%rip), %rsi     # 0x174a6
leaq 0x10016(%rip), %rdx     # 0x174aa
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x100d8(%rip), %rsi     # 0x1757f
leaq 0x100da(%rip), %rdx     # 0x17588
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x100c8(%rip), %rsi     # 0x17589
leaq 0x100c4(%rip), %rdx     # 0x1758c
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10010(%rip), %rsi     # 0x174eb
leaq 0x1000c(%rip), %rdx     # 0x174ee
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1000c(%rip), %rsi     # 0x174fe
leaq 0x10012(%rip), %rdx     # 0x1750b
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10003(%rip), %rsi     # 0x1750c
leaq 0x10007(%rip), %rdx     # 0x17517
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x1003a(%rip), %rsi     # 0x1755a
leaq 0x10045(%rip), %rdx     # 0x1756c
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0x10042(%rip), %rsi     # 0x17579
leaq 0x10040(%rip), %rdx     # 0x1757e
jmp 0x7555
leaq 0x10(%rbx), %rax
movq %rax, (%rbx)
leaq 0xffe8(%rip), %rsi      # 0x17536
leaq 0xfff2(%rip), %rdx      # 0x17547
movq %rbx, %rdi
callq 0x6646
movq %rbx, %rax
addq $0x68, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movdqu (%rcx), %xmm0
movdqu %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xfef0(%rip), %rsi      # 0x1748b
callq 0x5630
jmp 0x7606
movdqu (%rcx), %xmm0
movdqu %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xfebc(%rip), %rsi      # 0x1748a
callq 0x5630
jmp 0x7606
movdqu (%rcx), %xmm0
movdqu %xmm0, (%r14)
movq 0x8(%rax), %rdx
leaq 0x8(%rsp), %rdi
movq %rdx, 0x8(%rdi)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0xfe8a(%rip), %rsi      # 0x1748b
callq 0x5630
leaq 0x10(%rbx), %rdx
movq %rdx, (%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x7628
movq %rsi, (%rbx)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbx)
jmp 0x7630
movdqu (%rcx), %xmm0
movdqu %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x773e
movq 0x18(%rsp), %rsi
jmp 0x7736
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53e0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x7691
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x7699
movdqu (%rcx), %xmm0
movdqu %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xfdce(%rip), %rsi      # 0x1748b
leaq 0x8(%rsp), %rdi
callq 0x5630
leaq 0x10(%rbx), %rdx
movq %rdx, (%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x76e9
movq %rsi, (%rbx)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbx)
jmp 0x76f1
movdqu (%rcx), %xmm0
movdqu %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7723
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5390
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x773e
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5390
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x755d
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5390
jmp 0x755d
addl $-0x2, %r15d
jmp 0x7767
decl %r15d
shrl $0x1f, %r14d
leal (%r15,%r14), %esi
leaq 0x58(%rsp), %r13
movq %r13, -0x10(%r13)
leaq 0x48(%rsp), %rdi
movl $0x2d, %edx
callq 0x5410
movl %r14d, %edi
addq 0x48(%rsp), %rdi
movl %r15d, %esi
movl %ebp, %edx
callq 0x7b1f
movq 0x28(%rsp), %rcx
movq 0x30(%rsp), %r8
movq 0x50(%rsp), %rdx
leaq (%rdx,%r8), %rax
movl $0xf, %edi
cmpq %r12, %rcx
je 0x77bb
movq 0x38(%rsp), %rdi
movq 0x48(%rsp), %rsi
cmpq %rdi, %rax
jbe 0x77d9
movl $0xf, %edi
cmpq %r13, %rsi
je 0x77d4
movq 0x58(%rsp), %rdi
cmpq %rdi, %rax
jbe 0x77e5
leaq 0x28(%rsp), %rdi
callq 0x50e0
jmp 0x77f3
leaq 0x48(%rsp), %rdi
xorl %esi, %esi
xorl %edx, %edx
callq 0x53e0
leaq 0x18(%rsp), %rdx
movq %rdx, -0x10(%rdx)
movq (%rax), %rsi
leaq 0x10(%rax), %rcx
cmpq %rcx, %rsi
je 0x7817
movq %rsi, 0x8(%rsp)
movq (%rcx), %rdx
movq %rdx, 0x18(%rsp)
jmp 0x781f
movdqu (%rcx), %xmm0
movdqu %xmm0, (%rdx)
movq %rax, %rdx
addq $0x8, %rdx
movq 0x8(%rax), %rsi
movq %rsi, 0x10(%rsp)
movq %rcx, (%rax)
movq $0x0, (%rdx)
movb $0x0, (%rcx)
leaq 0xfc48(%rip), %rsi      # 0x1748b
leaq 0x8(%rsp), %rdi
callq 0x5630
leaq 0x10(%rbx), %rdx
movq %rdx, (%rbx)
movq (%rax), %rsi
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rsi
je 0x786f
movq %rsi, (%rbx)
movq (%rcx), %rdx
movq %rdx, 0x10(%rbx)
jmp 0x7877
movdqu (%rcx), %xmm0
movdqu %xmm0, (%rdx)
movq 0x8(%rax), %rdx
movq %rdx, 0x8(%rbx)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x78a9
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5390
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x78c0
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5390
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
jne 0x774c
jmp 0x755d
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7916
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5390
jmp 0x7916
movq %rax, %rbx
leaq 0x18(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x7932
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5390
jmp 0x7932
movq %rax, %rbx
movq 0x48(%rsp), %rdi
cmpq %r13, %rdi
je 0x796a
movq 0x58(%rsp), %rsi
incq %rsi
callq 0x5390
jmp 0x796a
movq %rax, %rbx
leaq 0x58(%rsp), %rax
movq -0x10(%rax), %rdi
cmpq %rax, %rdi
je 0x797f
movq 0x58(%rsp), %rsi
jmp 0x795d
jmp 0x794b
jmp 0x794b
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r14, %rdi
je 0x797f
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x5390
jmp 0x797f
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r12, %rdi
jne 0x7989
jmp 0x79a3
jmp 0x797c
jmp 0x797c
jmp 0x797c
movq %rax, %rbx
movq 0x28(%rsp), %rdi
cmpq %r15, %rdi
je 0x79a3
movq 0x38(%rsp), %rsi
incq %rsi
callq 0x5390
jmp 0x79a3
jmp 0x79a0
jmp 0x79a0
jmp 0x79a0
jmp 0x79a0
movq %rax, %rbx
movq %rbx, %rdi
callq 0x55e0
nop