// File: /workspace/github_cpp_makefile_star2_O3/ClauParser[P]ClauParser/./include/clau_parser.h
// Function: clau_parser::InFileReserver::_Scanning(char*, long, long, long*&, unsigned long&)
static void _Scanning(char* text, int64_t num, const int64_t length,
			int64_t*& token_arr, size_t& _token_arr_size) {

			size_t token_arr_size = 0;

			{

				int64_t token_first = 0;
				int64_t token_last = -1;

				size_t token_arr_count = 0;

				for (int64_t i = 0; i < length; ++i) {
					const char ch = text[i];

					switch (ch) {
					case '\"':
						token_last = i - 1;
						if (token_last - token_first + 1 > 0) {
							token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
							token_arr_count++;
						}

						token_first = i;
						token_last = i;

						token_first = i + 1;
						token_last = i + 1;

						{//
							token_arr[num + token_arr_count] = 1;
							token_arr[num + token_arr_count] += Utility::Get(i + num, 1, ch);
							token_arr_count++;
						}
						break;
					case '\\':
					{//
						token_arr[num + token_arr_count] = 1;
						token_arr[num + token_arr_count] += Utility::Get(i + num, 1, ch);
						token_arr_count++;
					}
					break;
					case '\n':
						token_last = i - 1;
						if (token_last - token_first + 1 > 0) {
							token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
							token_arr_count++;
						}
						token_first = i + 1;
						token_last = i + 1;

						{//
							token_arr[num + token_arr_count] = 1;
							token_arr[num + token_arr_count] += Utility::Get(i + num, 1, ch);
							token_arr_count++;
						}
						break;
					case '\0':
						token_last = i - 1;
						if (token_last - token_first + 1 > 0) {
							token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
							token_arr_count++;
						}
						token_first = i + 1;
						token_last = i + 1;

						{//
							token_arr[num + token_arr_count] = 1;
							token_arr[num + token_arr_count] += Utility::Get(i + num, 1, ch);
							token_arr_count++;
						}
						break;
					case  LoadDataOption::LineComment:
						token_last = i - 1;
						if (token_last - token_first + 1 > 0) {
							token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
							token_arr_count++;
						}
						token_first = i + 1;
						token_last = i + 1;

						{//
							token_arr[num + token_arr_count] = 1;
							token_arr[num + token_arr_count] += Utility::Get(i + num, 1, ch);
							token_arr_count++;
						}

						break;
					case ' ':
					case '\t':
					case '\r':
					case '\v':
					case '\f':
						token_last = i - 1;

						//if (token_last - token_first + 1 > 0) {
						token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
						token_arr_count += token_last - token_first + 1 > 0 ? 1 : 0;
						//}
						token_first = i + 1;
						token_last = i + 1;

						break;
					case LoadDataOption::Left:
						token_last = i - 1;
						if (token_last - token_first + 1 > 0) {
							token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
							token_arr_count++;
						}

						token_first = i;
						token_last = i;

						token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
						token_arr_count++;

						token_first = i + 1;
						token_last = i + 1;
						break;
					case LoadDataOption::Right:
						token_last = i - 1;
						if (token_last - token_first + 1 > 0) {
							token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
							token_arr_count++;
						}
						token_first = i;
						token_last = i;

						token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
						token_arr_count++;

						token_first = i + 1;
						token_last = i + 1;
						break;
					case LoadDataOption::Assignment:
						token_last = i - 1;
						if (token_last - token_first + 1 > 0) {
							token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
							token_arr_count++;
						}
						token_first = i;
						token_last = i;

						token_arr[num + token_arr_count] = Utility::Get(token_first + num, token_last - token_first + 1, text[token_first]);
						token_arr_count++;

						token_first = i + 1;
						token_last = i + 1;
						break;
					}

				}

				if (length - 1 - token_first + 1 > 0) {
					token_arr[num + token_arr_count] = Utility::Get(token_first + num, length - 1 - token_first + 1, text[token_first]);
					token_arr_count++;
				}
				token_arr_size = token_arr_count;
			}

			{
				_token_arr_size = token_arr_size;
			}
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
movq %r8, -0x8(%rsp)
testq %rdx, %rdx
movq %rsi, -0x18(%rsp)
movq %rcx, -0x10(%rsp)
jle 0x79ef
movl $0xfffffff8, %r9d       # imm = 0xFFFFFFF8
leaq (,%rsi,8), %r10
addq (%rcx), %r10
movq %rsi, %r11
shlq $0x20, %r11
movl $0x8, %ebx
movl $0x9, %r14d
xorl %r15d, %r15d
xorl %r12d, %r12d
xorl %eax, %eax
xorl %r13d, %r13d
movq %r11, -0x20(%rsp)
movzbl (%rdi,%r12), %ebp
cmpl $0x21, %ebp
jg 0x76b1
cmpl $0xd, %ebp
ja 0x77e0
movl %ebp, %r8d
leaq 0x2a02(%rip), %rcx      # 0xa088
movslq (%rcx,%r8,4), %r8
addq %rcx, %r8
jmpq *%r8
movq %r12, %rbp
subq %r13, %rbp
cmpq $0x1, %rbp
je 0x778a
addl %esi, %r13d
shlq $0x20, %r13
leaq (%r13,%rbp,8), %r13
jmp 0x77cc
cmpl $0x5b, %ebp
jg 0x76ec
cmpl $0x22, %ebp
je 0x77ee
cmpl $0x23, %ebp
je 0x7733
cmpl $0x3d, %ebp
jne 0x79cf
movq %r12, %r8
subq %r13, %r8
testq %r8, %r8
jg 0x7829
movl $0x6, %r8d
xorl %ebp, %ebp
xorl %r13d, %r13d
jmp 0x78c3
cmpl $0x5c, %ebp
je 0x7930
cmpl $0x7b, %ebp
je 0x781a
cmpl $0x7d, %ebp
jne 0x79cf
movq %r12, %r8
subq %r13, %r8
testq %r8, %r8
jle 0x78d8
movq %r8, %rcx
decq %rcx
je 0x7940
addl %esi, %r13d
shlq $0x20, %r13
leaq (%r13,%r8,8), %r13
jmp 0x7981
movq %r12, %r8
subq %r13, %r8
testq %r8, %r8
jle 0x792b
movq %r8, %rcx
decq %rcx
jne 0x7809
movb (%rdi,%r13), %cl
xorl %r8d, %r8d
cmpb $0x7b, %cl
sete %r8b
xorl %r11d, %r11d
cmpb $0x7d, %cl
sete %r11b
shll $0x2, %r11d
leaq 0x6(%r11), %rbp
cmpb $0x3d, %cl
cmovneq %r11, %rbp
movq -0x20(%rsp), %r11
leaq (,%r8,2), %rcx
addq %rbp, %rcx
jmp 0x7917
movb (%rdi,%r13), %cl
xorl %r8d, %r8d
cmpb $0x7b, %cl
sete %r8b
xorl %r11d, %r11d
cmpb $0x7d, %cl
sete %r11b
shll $0x2, %r11d
leaq 0x6(%r11), %rsi
cmpb $0x3d, %cl
cmovneq %r11, %rsi
movq -0x20(%rsp), %r11
leaq (%rsi,%r8,2), %rcx
movq -0x18(%rsp), %rsi
imulq %r9, %r13
addq %rcx, %r13
addq %r11, %r13
addq %r15, %r13
movq %r13, (%r10,%rax,8)
xorl %ecx, %ecx
testq %rbp, %rbp
setg %cl
addq %rcx, %rax
jmp 0x79ca
cmpl $0x20, %ebp
je 0x7690
jmp 0x79cf
movq %r12, %r8
subq %r13, %r8
testq %r8, %r8
jle 0x792b
movq %r8, %rbp
decq %rbp
je 0x78e8
addl %esi, %r13d
shlq $0x20, %r13
leaq (%r13,%r8,8), %r13
jmp 0x7924
movq %r12, %r8
subq %r13, %r8
testq %r8, %r8
jle 0x78b8
movq %r8, %rcx
decq %rcx
je 0x783f
addl %esi, %r13d
shlq $0x20, %r13
leaq (%r13,%r8,8), %r13
jmp 0x7880
movb (%rdi,%r13), %cl
xorl %esi, %esi
cmpb $0x7b, %cl
sete %sil
xorl %r8d, %r8d
cmpb $0x7d, %cl
sete %r8b
shll $0x2, %r8d
leaq 0x6(%r8), %r11
cmpb $0x3d, %cl
cmovneq %r8, %r11
leaq (%r11,%rsi,2), %rcx
movq -0x20(%rsp), %r11
movq -0x18(%rsp), %rsi
imulq %r9, %r13
addq %rcx, %r13
addq %r11, %r13
addq %r15, %r13
movq %r13, (%r10,%rax,8)
incq %rax
movb (%rdi,%r12), %cl
xorl %r13d, %r13d
cmpb $0x7b, %cl
sete %r13b
addl %r13d, %r13d
xorl %ebp, %ebp
cmpb $0x7d, %cl
sete %bpl
shll $0x2, %ebp
cmpb $0x3d, %cl
movl $0x0, %r8d
movl $0x6, %ecx
cmoveq %rcx, %r8
jmp 0x78c3
movl $0x2, %r13d
xorl %ebp, %ebp
xorl %r8d, %r8d
addq %r8, %rbp
addq %r13, %rbp
addq %r11, %rbp
addq %rbx, %rbp
movq %rbp, (%r10,%rax,8)
jmp 0x79c7
movl $0x4, %r13d
xorl %ebp, %ebp
xorl %r8d, %r8d
jmp 0x79b7
movb (%rdi,%r13), %r8b
xorl %ebp, %ebp
cmpb $0x7b, %r8b
sete %bpl
xorl %ecx, %ecx
cmpb $0x7d, %r8b
sete %cl
shll $0x2, %ecx
leaq 0x6(%rcx), %r11
cmpb $0x3d, %r8b
cmovneq %rcx, %r11
leaq (%r11,%rbp,2), %rcx
movq -0x20(%rsp), %r11
imulq %r9, %r13
addq %rcx, %r13
addq %r11, %r13
addq %r15, %r13
movq %r13, (%r10,%rax,8)
incq %rax
leaq 0x1(%r12), %r13
leaq (%r11,%r14), %rcx
movq %rcx, (%r10,%rax,8)
incq %rax
jmp 0x79cf
movb (%rdi,%r13), %cl
xorl %esi, %esi
cmpb $0x7b, %cl
sete %sil
xorl %r8d, %r8d
cmpb $0x7d, %cl
sete %r8b
shll $0x2, %r8d
leaq 0x6(%r8), %r11
cmpb $0x3d, %cl
cmovneq %r8, %r11
leaq (%r11,%rsi,2), %rcx
movq -0x20(%rsp), %r11
movq -0x18(%rsp), %rsi
imulq %r9, %r13
addq %rcx, %r13
addq %r11, %r13
addq %r15, %r13
movq %r13, (%r10,%rax,8)
incq %rax
movb (%rdi,%r12), %cl
xorl %ebp, %ebp
cmpb $0x7b, %cl
sete %bpl
addl %ebp, %ebp
xorl %r13d, %r13d
cmpb $0x7d, %cl
sete %r13b
shll $0x2, %r13d
cmpb $0x3d, %cl
movl $0x0, %r8d
movl $0x6, %ecx
cmoveq %rcx, %r8
addq %r8, %r13
addq %rbp, %r13
addq %r11, %r13
addq %rbx, %r13
movq %r13, (%r10,%rax,8)
incq %rax
leaq 0x1(%r12), %r13
incq %r12
addq %r9, %rbx
addq $0x8, %rbx
addq %r9, %r14
addq $0x8, %r14
addq $0x8, %r15
cmpq %r12, %rdx
jne 0x7669
jmp 0x79f4
xorl %r13d, %r13d
xorl %eax, %eax
subq %r13, %rdx
testq %rdx, %rdx
jle 0x7a58
leal (%rsi,%r13), %ecx
shlq $0x20, %rcx
leaq (%rcx,%rdx,8), %r8
cmpq $0x1, %rdx
jne 0x7a41
movb (%rdi,%r13), %cl
xorl %edx, %edx
cmpb $0x7b, %cl
sete %dl
xorl %esi, %esi
cmpb $0x7d, %cl
sete %sil
xorl %edi, %edi
cmpb $0x3d, %cl
movl $0x6, %ecx
cmovneq %rdi, %rcx
orq %r8, %rcx
leaq (%rcx,%rsi,4), %rcx
movq -0x18(%rsp), %rsi
leaq (%rcx,%rdx,2), %r8
leaq (,%rax,8), %rcx
movq -0x10(%rsp), %rdx
addq (%rdx), %rcx
movq %r8, (%rcx,%rsi,8)
incq %rax
movq -0x8(%rsp), %rcx
movq %rax, (%rcx)
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop