// File: /workspace/github_cpp_makefile_star2_O3/ClauParser[P]ClauParser/./include/clau_parser.h
// Function: clau_parser::InFileReserver::Scanning(char*, unsigned long, long*&, unsigned long&)
static void Scanning(char* text, const size_t length,
			int64_t*& _token_arr, size_t& _token_arr_size) {

			int64_t* token_arr = new int64_t[length + 1];
			size_t token_arr_size = 0;

			{
				int state = 0;

				int64_t token_first = 0;
				int64_t token_last = -1;

				size_t token_arr_count = 0;

				for (size_t i = 0; i <= length; ++i) {
					const char ch = text[i];

					if (0 == state) {
						if (LoadDataOption::LineComment == ch) {
							token_last = i - 1;
							if (token_last - token_first + 1 > 0) {
								token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
								token_arr_count++;
							}

							state = 3;
						}
						else if ('\"' == ch) {
							token_last = i - 1;
							if (token_last - token_first + 1 > 0) {
								token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
								token_arr_count++;
							}

							token_first = i;
							token_last = i;

							state = 1;
						}
						else if (Utility::isWhitespace(ch) || '\0' == ch) {
							token_last = i - 1;
							if (token_last - token_first + 1 > 0) {
								token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
								token_arr_count++;
							}
							token_first = i + 1;
							token_last = i + 1;
						}
						else if (LoadDataOption::Left == ch) {
							token_last = i - 1;
							if (token_last - token_first + 1 > 0) {
								token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
								token_arr_count++;
							}

							token_first = i;
							token_last = i;

							token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
							token_arr_count++;

							token_first = i + 1;
							token_last = i + 1;
						}
						else if (LoadDataOption::Right == ch) {
							token_last = i - 1;
							if (token_last - token_first + 1 > 0) {
								token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
								token_arr_count++;
							}
							token_first = i;
							token_last = i;

							token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
							token_arr_count++;

							token_first = i + 1;
							token_last = i + 1;

						}
						else if (LoadDataOption::Assignment == ch) {
							token_last = i - 1;
							if (token_last - token_first + 1 > 0) {
								token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
								token_arr_count++;
							}
							token_first = i;
							token_last = i;

							token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
							token_arr_count++;

							token_first = i + 1;
							token_last = i + 1;
						}
					}
					else if (1 == state) {
						if ('\\' == ch) {
							state = 2;
						}
						else if ('\"' == ch) {
							token_last = i;

							token_arr[token_arr_count] = Utility::Get(token_first, token_last - token_first + 1, text[token_first]);
							token_arr_count++;

							token_first = i + 1;
							token_last = i + 1;

							state = 0;
						}
					}
					else if (2 == state) {
						state = 1;
					}
					else if (3 == state) {
						if ('\n' == ch || '\0' == ch) {
							state = 0;

							token_first = i + 1;
							token_last = i + 1;
						}
					}
				}

				token_arr_size = token_arr_count;

				if (0 != state) {
					//std::cout << "[" << state << "] state is not zero.\n";
				}
			}

			{
				_token_arr = token_arr;
				_token_arr_size = token_arr_size;
			}
		}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
pushq %rax
movq %rcx, (%rsp)
movq %rdx, %r14
movq %rsi, %r15
movq %rdi, %r12
movl $0xfffffff8, %r13d      # imm = 0xFFFFFFF8
leaq 0x1(%rsi), %rbx
movq %rbx, %rax
shrq $0x3d, %rax
leaq 0x8(,%rsi,8), %rcx
xorl %ebp, %ebp
negq %rax
movl $0x0, %edi
sbbq %rdi, %rdi
orq %rcx, %rdi
callq 0x2040
cmpq $0x1, %rbx
adcq $0x1, %r15
movl $0x8, %ecx
movl $0xa, %edx
xorl %esi, %esi
xorl %edi, %edi
xorl %r10d, %r10d
movl $0x1, %r8d
cmpl $0x2, %r10d
je 0x69f8
movzbl (%r12,%rbp), %r9d
cmpl $0x1, %r10d
je 0x6767
testl %r10d, %r10d
jne 0x6787
cmpl $0x1f, %r9d
jg 0x67a5
leal -0x9(%r9), %r8d
cmpl $0x5, %r8d
jae 0x6888
movq %rbp, %r8
subq %rdi, %r8
testq %r8, %r8
jle 0x69f1
movq %r8, %r9
decq %r9
je 0x6847
shlq $0x20, %rdi
leaq (%rdi,%r8,8), %rdi
jmp 0x69ea
cmpl $0x5c, %r9d
je 0x67f6
cmpl $0x22, %r9d
jne 0x69f8
imulq %r13, %rdi
addq %rcx, %rdi
jmp 0x69ea
cmpl $0xa, %r9d
je 0x69f1
movl $0x3, %r8d
testl %r9d, %r9d
je 0x69f1
jmp 0x69f8
cmpl $0x3c, %r9d
jg 0x6801
cmpl $0x20, %r9d
je 0x673f
cmpl $0x22, %r9d
je 0x68be
cmpl $0x23, %r9d
jne 0x69f5
movq %rbp, %r9
subq %rdi, %r9
movl $0x3, %r8d
testq %r9, %r9
jle 0x69f8
movq %r9, %r10
decq %r10
je 0x690e
movq %rdi, %r10
shlq $0x20, %r10
leaq (%r10,%r9,8), %r9
jmp 0x694e
movl $0x2, %r8d
jmp 0x69f8
cmpl $0x3d, %r9d
je 0x6896
cmpl $0x7b, %r9d
je 0x68e6
cmpl $0x7d, %r9d
jne 0x69f5
movq %rbp, %r8
subq %rdi, %r8
testq %r8, %r8
jle 0x699d
movq %r8, %r9
decq %r9
je 0x695a
shlq $0x20, %rdi
leaq (%rdi,%r8,8), %rdi
jmp 0x6996
movb (%r12,%rdi), %r8b
xorl %r9d, %r9d
cmpb $0x7b, %r8b
sete %r9b
xorl %r10d, %r10d
cmpb $0x7d, %r8b
sete %r10b
shll $0x2, %r10d
leaq 0x6(%r10), %r11
cmpb $0x3d, %r8b
cmovneq %r10, %r11
leaq (%r11,%r9,2), %r8
imulq %r13, %rdi
addq %r8, %rdi
addq %rcx, %rdi
addq $-0x8, %rdi
jmp 0x69ea
testl %r9d, %r9d
je 0x673f
jmp 0x69f5
movq %rbp, %r8
subq %rdi, %r8
testq %r8, %r8
jle 0x69e6
movq %r8, %r9
decq %r9
je 0x69a3
shlq $0x20, %rdi
leaq (%rdi,%r8,8), %rdi
jmp 0x69df
movq %rbp, %r9
subq %rdi, %r9
testq %r9, %r9
jle 0x6a5a
movq %r9, %r10
decq %r10
je 0x6a17
shlq $0x20, %rdi
leaq (%rdi,%r9,8), %rdi
jmp 0x6a53
movq %rbp, %r8
subq %rdi, %r8
testq %r8, %r8
jle 0x6aa2
movq %r8, %r9
decq %r9
je 0x6a5f
shlq $0x20, %rdi
leaq (%rdi,%r8,8), %rdi
jmp 0x6a9b
movb (%r12,%rdi), %r9b
xorl %r10d, %r10d
cmpb $0x7b, %r9b
sete %r10b
xorl %r11d, %r11d
cmpb $0x7d, %r9b
sete %r11b
shll $0x2, %r11d
leaq 0x6(%r11), %rbx
cmpb $0x3d, %r9b
cmovneq %r11, %rbx
leaq (%rbx,%r10,2), %r9
movq %rdi, %r10
imulq %r13, %r10
addq %r9, %r10
leaq (%rcx,%r10), %r9
addq $-0x8, %r9
movq %r9, (%rax,%rsi,8)
incq %rsi
jmp 0x69f8
movb (%r12,%rdi), %r8b
xorl %r9d, %r9d
cmpb $0x7b, %r8b
sete %r9b
xorl %r10d, %r10d
cmpb $0x7d, %r8b
sete %r10b
shll $0x2, %r10d
leaq 0x6(%r10), %r11
cmpb $0x3d, %r8b
cmovneq %r10, %r11
leaq (%r11,%r9,2), %r8
imulq %r13, %rdi
addq %r8, %rdi
addq %rcx, %rdi
addq $-0x8, %rdi
movq %rdi, (%rax,%rsi,8)
incq %rsi
leaq 0x2(%rdx), %rdi
jmp 0x69ea
movb (%r12,%rdi), %r8b
xorl %r9d, %r9d
cmpb $0x7b, %r8b
sete %r9b
xorl %r10d, %r10d
cmpb $0x7d, %r8b
sete %r10b
shll $0x2, %r10d
leaq 0x6(%r10), %r11
cmpb $0x3d, %r8b
cmovneq %r10, %r11
leaq (%r11,%r9,2), %r8
imulq %r13, %rdi
addq %r8, %rdi
addq %rcx, %rdi
addq $-0x8, %rdi
movq %rdi, (%rax,%rsi,8)
incq %rsi
leaq 0x4(%rdx), %rdi
movq %rdi, (%rax,%rsi,8)
incq %rsi
leaq 0x1(%rbp), %rdi
xorl %r8d, %r8d
incq %rbp
addq $0x8, %rcx
addq %r13, %rdx
addq $0x8, %rdx
movl %r8d, %r10d
cmpq %rbp, %r15
jne 0x670b
jmp 0x6aab
movb (%r12,%rdi), %r9b
xorl %r10d, %r10d
cmpb $0x7b, %r9b
sete %r10b
xorl %r11d, %r11d
cmpb $0x7d, %r9b
sete %r11b
shll $0x2, %r11d
leaq 0x6(%r11), %rbx
cmpb $0x3d, %r9b
cmovneq %r11, %rbx
leaq (%rbx,%r10,2), %r9
imulq %r13, %rdi
addq %r9, %rdi
addq %rcx, %rdi
addq $-0x8, %rdi
movq %rdi, (%rax,%rsi,8)
incq %rsi
movq %rbp, %rdi
jmp 0x69f8
movb (%r12,%rdi), %r8b
xorl %r9d, %r9d
cmpb $0x7b, %r8b
sete %r9b
xorl %r10d, %r10d
cmpb $0x7d, %r8b
sete %r10b
shll $0x2, %r10d
leaq 0x6(%r10), %r11
cmpb $0x3d, %r8b
cmovneq %r10, %r11
leaq (%r11,%r9,2), %r8
imulq %r13, %rdi
addq %r8, %rdi
addq %rcx, %rdi
addq $-0x8, %rdi
movq %rdi, (%rax,%rsi,8)
incq %rsi
movq %rdx, (%rax,%rsi,8)
jmp 0x69ee
movq %rax, (%r14)
movq (%rsp), %rax
movq %rsi, (%rax)
addq $0x8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq