// File: /workspace/github_cpp_makefile_star2_O2/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
subq $0x28, %rsp
movq %rcx, 0x18(%rsp)
movq %rdx, 0x10(%rsp)
movq %rsi, %r15
movq %rdi, %r12
leaq 0x1(%rsi), %rax
shrq $0x3d, %rax
leaq 0x8(,%rsi,8), %rcx
xorl %r13d, %r13d
negq %rax
movl $0x0, %edi
sbbq %rdi, %rdi
orq %rcx, %rdi
callq 0x2040
movq %rax, %rbx
xorl %r14d, %r14d
movq $0x0, 0x8(%rsp)
xorl %ebp, %ebp
movq %r15, 0x20(%rsp)
cmpq %r15, %rbp
ja 0x5ad3
cmpl $0x2, %r13d
je 0x59d0
movzbl (%r12,%rbp), %eax
cmpl $0x1, %r13d
je 0x597e
testl %r13d, %r13d
jne 0x59d4
xorl %r13d, %r13d
leal -0x9(%rax), %ecx
cmpl $0x5, %ecx
jb 0x59e9
testl %eax, %eax
je 0x59e9
cmpl $0x20, %eax
je 0x59e9
cmpl $0x22, %eax
je 0x5a72
cmpl $0x7d, %eax
je 0x5a2a
cmpl $0x3d, %eax
je 0x5a39
cmpl $0x7b, %eax
je 0x5a48
cmpl $0x23, %eax
jne 0x5acb
movq %rbp, %rsi
subq %r14, %rsi
testq %rsi, %rsi
jle 0x5a1b
movsbl (%r12,%r14), %edx
movq %r14, %rdi
callq 0x6070
movq 0x8(%rsp), %rcx
movq %rax, (%rbx,%rcx,8)
incq %rcx
movq %rcx, 0x8(%rsp)
jmp 0x5a1b
cmpl $0x5c, %eax
je 0x5a1f
cmpl $0x22, %eax
jne 0x59d0
movq %r12, %r15
movq %rbx, %r12
leaq 0x1(%rbp), %rbx
movq %rbx, %rsi
subq %r14, %rsi
movsbl (%r15,%r14), %edx
movq %r14, %rdi
callq 0x6070
movq 0x8(%rsp), %rcx
movq %rax, (%r12,%rcx,8)
incq %rcx
movq %rcx, 0x8(%rsp)
xorl %r13d, %r13d
movq %rbx, %r14
movq %r12, %rbx
movq %r15, %r12
movq 0x20(%rsp), %r15
jmp 0x5acb
pushq $0x1
jmp 0x5a21
cmpl $0xa, %eax
je 0x59dd
testl %eax, %eax
jne 0x5a1b
leaq 0x1(%rbp), %r14
xorl %r13d, %r13d
jmp 0x5acb
movq %rbp, %rsi
subq %r14, %rsi
testq %rsi, %rsi
jle 0x5ac7
movsbl (%r12,%r14), %edx
movq %r14, %rdi
callq 0x6070
movq 0x8(%rsp), %rcx
movq %rax, (%rbx,%rcx,8)
incq %rcx
movq %rcx, 0x8(%rsp)
jmp 0x5ac7
pushq $0x3
jmp 0x5a21
pushq $0x2
popq %rax
movl %eax, %r13d
jmp 0x5acb
movq %rbp, %rsi
subq %r14, %rsi
testq %rsi, %rsi
jg 0x5a53
movb $0x7d, %al
jmp 0x5aa8
movq %rbp, %rsi
subq %r14, %rsi
testq %rsi, %rsi
jg 0x5a53
movb $0x3d, %al
jmp 0x5aa8
movq %rbp, %rsi
subq %r14, %rsi
testq %rsi, %rsi
jle 0x5aa6
movsbl (%r12,%r14), %edx
movq %r14, %rdi
callq 0x6070
movq 0x8(%rsp), %r14
movq %rax, (%rbx,%r14,8)
incq %r14
movb (%r12,%rbp), %al
jmp 0x5aad
movq %rbp, %rsi
subq %r14, %rsi
testq %rsi, %rsi
jle 0x5a9b
movsbl (%r12,%r14), %edx
movq %r14, %rdi
callq 0x6070
movq 0x8(%rsp), %rcx
movq %rax, (%rbx,%rcx,8)
incq %rcx
movq %rcx, 0x8(%rsp)
pushq $0x1
popq %rax
movl %eax, %r13d
movq %rbp, %r14
jmp 0x5acb
movb $0x7b, %al
movq 0x8(%rsp), %r14
movsbl %al, %edx
movq %rbp, %rdi
pushq $0x1
popq %rsi
callq 0x6070
movq %rax, (%rbx,%r14,8)
incq %r14
movq %r14, 0x8(%rsp)
leaq 0x1(%rbp), %r14
incq %rbp
jmp 0x58d4
movq 0x10(%rsp), %rax
movq %rbx, (%rax)
movq 0x18(%rsp), %rax
movq 0x8(%rsp), %rcx
movq %rcx, (%rax)
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
nop