// File: /workspace/github_cpp_makefile_star2_O1/mhe[P]raytracerframework_cpp/yaml/scantoken.cpp
// Function: YAML::Scanner::ScanBlockScalar()
void Scanner::ScanBlockScalar()
	{
		std::string scalar;

		ScanScalarParams params;
		params.indent = 1;
		params.detectIndent = true;

		// eat block indicator ('|' or '>')
		int line = INPUT.line, column = INPUT.column;
		char indicator = INPUT.get();
		params.fold = (indicator == Keys::FoldedScalar);

		// eat chomping/indentation indicators
		int n = Exp::Chomp.Match(INPUT);
		for(int i=0;i<n;i++) {
			char ch = INPUT.get();
			if(ch == '+')
				params.chomp = KEEP;
			else if(ch == '-')
				params.chomp = STRIP;
			else if(Exp::Digit.Matches(ch)) {
				if(ch == '0')
					throw ParserException(INPUT.line, INPUT.column, ErrorMsg::ZERO_INDENT_IN_BLOCK);

				params.indent = ch - '0';
				params.detectIndent = false;
			}
		}

		// now eat whitespace
		while(Exp::Blank.Matches(INPUT))
			INPUT.eat(1);

		// and comments to the end of the line
		if(Exp::Comment.Matches(INPUT))
			while(INPUT && !Exp::Break.Matches(INPUT))
				INPUT.eat(1);

		// if it's not a line break, then we ran into a bad character inline
		if(INPUT && !Exp::Break.Matches(INPUT))
			throw ParserException(INPUT.line, INPUT.column, ErrorMsg::CHAR_IN_BLOCK);

		// set the initial indentation
		if(m_indents.top() >= 0)
			params.indent += m_indents.top();

		params.eatLeadingWhitespace = false;
		params.trimTrailingSpaces = false;
		params.onTabInIndentation = THROW;

		scalar = ScanScalar(INPUT, params);

		// simple keys always ok after block scalars (since we're gonna start a new line anyways)
		m_simpleKeyAllowed = true;

		Token token(TT_SCALAR, line, column);
		token.value = scalar;
		m_tokens.push(token);
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0xc8, %rsp
movq %rdi, %rbx
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
movq $0x0, -0x8(%rax)
movb $0x0, (%rax)
leaq -0xa0(%rbp), %rdi
callq 0x2a12a
xorl %eax, %eax
movb %al, -0x70(%rbp)
movq %rax, -0x6c(%rbp)
movb %al, -0x64(%rbp)
movq %rax, -0x60(%rbp)
movq %rax, -0x5b(%rbp)
movl $0x1, -0x6c(%rbp)
movb $0x1, -0x68(%rbp)
movl 0x8(%rbx), %eax
movl %eax, -0x30(%rbp)
movl 0xc(%rbx), %eax
movl %eax, -0x2c(%rbp)
movq %rbx, %rdi
callq 0x30904
cmpb $0x3e, %al
sete -0x65(%rbp)
leaq 0x12c6e(%rip), %rdi     # 0x41c60
movq %rbx, %rsi
callq 0x2a496
movl %eax, %r14d
testl %eax, %eax
jle 0x2f060
leaq 0x12868(%rip), %r15     # 0x41870
movq %rbx, %rdi
callq 0x30904
movl %eax, %r12d
cmpb $0x2d, %al
je 0x2f029
movzbl %r12b, %eax
cmpl $0x2b, %eax
jne 0x2f032
movl $0x1, -0x60(%rbp)
jmp 0x2f05b
movl $0xffffffff, -0x60(%rbp) # imm = 0xFFFFFFFF
jmp 0x2f05b
movsbl %r12b, %r13d
movq %r15, %rdi
movl %r13d, %esi
callq 0x2a342
testb %al, %al
je 0x2f05b
cmpb $0x30, %r12b
je 0x2f249
addl $-0x30, %r13d
movl %r13d, -0x6c(%rbp)
movb $0x0, -0x68(%rbp)
decl %r14d
jne 0x2f008
leaq 0x12779(%rip), %r14     # 0x417e0
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2a482
testb %al, %al
je 0x2f085
movq %rbx, %rdi
movl $0x1, %esi
callq 0x3099c
jmp 0x2f067
leaq 0x12a24(%rip), %rdi     # 0x41ab0
movq %rbx, %rsi
callq 0x2a482
testb %al, %al
je 0x2f0c9
leaq 0x12771(%rip), %r14     # 0x41810
movq %rbx, %rdi
callq 0x308ec
testb %al, %al
je 0x2f0c9
movq %r14, %rdi
movq %rbx, %rsi
callq 0x2a482
testb %al, %al
jne 0x2f0c9
movq %rbx, %rdi
movl $0x1, %esi
callq 0x3099c
jmp 0x2f09f
movq %rbx, %rdi
callq 0x308ec
testb %al, %al
je 0x2f0ec
leaq 0x12734(%rip), %rdi     # 0x41810
movq %rbx, %rsi
callq 0x2a482
testb %al, %al
je 0x2f28d
movq 0xf0(%rbx), %rax
movq 0xf8(%rbx), %rcx
movq %rax, %rdx
cmpq %rcx, %rax
jne 0x2f112
movq 0x108(%rbx), %rsi
movl $0x200, %edx            # imm = 0x200
addq -0x8(%rsi), %rdx
cmpl $0x0, -0x4(%rdx)
js 0x2f133
cmpq %rcx, %rax
jne 0x2f12d
movq 0x108(%rbx), %rcx
movl $0x200, %eax            # imm = 0x200
addq -0x8(%rcx), %rax
movl -0x4(%rax), %eax
addl %eax, -0x6c(%rbp)
xorl %eax, %eax
leaq -0xa0(%rbp), %rdx
movb %al, 0x39(%rdx)
movb %al, 0x3c(%rdx)
movl $0x2, 0x48(%rdx)
leaq -0xe8(%rbp), %rdi
movq %rbx, %rsi
callq 0x2d624
leaq -0x50(%rbp), %rdi
leaq -0xe8(%rbp), %r14
movq %r14, %rsi
callq 0x53c0
movq (%r14), %rdi
leaq -0xd8(%rbp), %rax
cmpq %rax, %rdi
je 0x2f189
movq -0xd8(%rbp), %rsi
incq %rsi
callq 0x52e0
movb $0x1, 0x62(%rbx)
movabsq $0x1100000000, %rax     # imm = 0x1100000000
leaq -0xd8(%rbp), %rdi
movq %rax, -0x10(%rdi)
movl -0x30(%rbp), %eax
movl %eax, -0x8(%rdi)
movl -0x2c(%rbp), %eax
movl %eax, -0x4(%rdi)
leaq -0xc8(%rbp), %r14
movq %r14, -0x10(%r14)
xorl %eax, %eax
movq %rax, -0x8(%r14)
movb $0x0, (%r14)
xorps %xmm0, %xmm0
movups %xmm0, 0x10(%r14)
movq %rax, 0x20(%r14)
leaq -0x50(%rbp), %rsi
callq 0x5160
addq $0x10, %rbx
leaq -0xe8(%rbp), %rsi
movq %rbx, %rdi
callq 0x2f83e
leaq -0xb8(%rbp), %rbx
movq %rbx, %rdi
callq 0x27ca8
movq -0x20(%rbx), %rdi
cmpq %r14, %rdi
je 0x2f212
movq -0xc8(%rbp), %rsi
incq %rsi
callq 0x52e0
leaq -0xa0(%rbp), %rdi
callq 0x2a2c0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x2f237
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x52e0
addq $0xc8, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movl $0x30, %edi
callq 0x5140
movq %rax, %r14
movl 0x8(%rbx), %esi
movl 0xc(%rbx), %edx
leaq 0x124dd(%rip), %rcx     # 0x41740
movq %rax, %rdi
callq 0x1a648
leaq 0xc64e(%rip), %rax      # 0x3b8c0
movq %rax, (%r14)
leaq 0xc3dc(%rip), %rsi      # 0x3b658
leaq -0x14a4f(%rip), %rdx    # 0x1a834
movq %r14, %rdi
callq 0x5520
jmp 0x2f2cf
movl $0x30, %edi
callq 0x5140
movq %rax, %r14
movl 0x8(%rbx), %esi
movl 0xc(%rbx), %edx
leaq 0x124b9(%rip), %rcx     # 0x41760
movq %rax, %rdi
callq 0x1a648
leaq 0xc60a(%rip), %rax      # 0x3b8c0
movq %rax, (%r14)
leaq 0xc398(%rip), %rsi      # 0x3b658
leaq -0x14a93(%rip), %rdx    # 0x1a834
movq %r14, %rdi
callq 0x5520
jmp 0x2f2dc
jmp 0x2f300
jmp 0x2f300
movq %rax, %rbx
jmp 0x2f30f
jmp 0x2f300
movq %rax, %rbx
movq %r14, %rdi
callq 0x5230
jmp 0x2f303
movq %rax, %rbx
leaq -0xe8(%rbp), %rdi
callq 0x27a7c
jmp 0x2f303
jmp 0x2f300
jmp 0x2f300
jmp 0x2f300
movq %rax, %rbx
leaq -0xa0(%rbp), %rdi
callq 0x2a2c0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x2f328
movq -0x40(%rbp), %rsi
incq %rsi
callq 0x52e0
movq %rbx, %rdi
callq 0x5560