// File: mhe[P]raytracerframework_cpp/yaml/node.cpp
// Function: YAML::Node::Parse(YAML::Scanner*, YAML::ParserState const&)
void Node::Parse(Scanner *pScanner, const ParserState& state)
	{
		Clear();

		// save location
		m_line = pScanner->peek().line;
		m_column = pScanner->peek().column;

		ParseHeader(pScanner, state);

		// is this an alias? if so, it can have no content
		if(m_alias)
			return;

		// now split based on what kind of node we should be
		switch(pScanner->peek().type) {
			case TT_SCALAR:
				m_pContent = new Scalar;
				m_pContent->Parse(pScanner, state);
				break;
			case TT_FLOW_SEQ_START:
			case TT_BLOCK_SEQ_START:
			case TT_BLOCK_ENTRY:
				m_pContent = new Sequence;
				m_pContent->Parse(pScanner, state);
				break;
			case TT_FLOW_MAP_START:
			case TT_BLOCK_MAP_START:
				m_pContent = new Map;
				m_pContent->Parse(pScanner, state);
				break;
			default:
				break;
		}
	}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x50, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0x30(%rbp)
callq 0x37a80
movq -0x10(%rbp), %rdi
callq 0x40550
movq %rax, %rcx
movq -0x30(%rbp), %rax
movl 0x8(%rcx), %ecx
movl %ecx, (%rax)
movq -0x10(%rbp), %rdi
callq 0x40550
movq -0x30(%rbp), %rdi
movl 0xc(%rax), %eax
movl %eax, 0x4(%rdi)
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x37cb0
movq -0x30(%rbp), %rax
testb $0x1, 0x50(%rax)
je 0x37b35
jmp 0x37c93
movq -0x10(%rbp), %rdi
callq 0x40550
movl 0x4(%rax), %eax
movl %eax, -0x34(%rbp)
subl $0x3, %eax
je 0x37be3
jmp 0x37b4f
movl -0x34(%rbp), %eax
subl $0x4, %eax
je 0x37c3a
jmp 0x37b5d
movl -0x34(%rbp), %eax
addl $-0x6, %eax
subl $0x2, %eax
jb 0x37be3
jmp 0x37b6a
movl -0x34(%rbp), %eax
subl $0x8, %eax
je 0x37c3a
jmp 0x37b78
movl -0x34(%rbp), %eax
subl $0x11, %eax
jne 0x37c91
jmp 0x37b86
movl $0x28, %edi
callq 0x53b0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x40(%rbp)
callq 0x3f110
jmp 0x37ba1
movq -0x30(%rbp), %rax
movq -0x40(%rbp), %rcx
movq %rcx, 0x48(%rax)
movq 0x48(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
callq *0x10(%rax)
jmp 0x37c93
movq -0x40(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x28, %esi
callq 0x53c0
jmp 0x37c99
movl $0x20, %edi
callq 0x53b0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x48(%rbp)
callq 0x483f0
jmp 0x37bfe
movq -0x30(%rbp), %rax
movq -0x48(%rbp), %rcx
movq %rcx, 0x48(%rax)
movq 0x48(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
callq *0x10(%rax)
jmp 0x37c93
movq -0x48(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x20, %esi
callq 0x53c0
jmp 0x37c99
movl $0x38, %edi
callq 0x53b0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x50(%rbp)
callq 0x34ad0
jmp 0x37c55
movq -0x30(%rbp), %rax
movq -0x50(%rbp), %rcx
movq %rcx, 0x48(%rax)
movq 0x48(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
movq (%rdi), %rax
callq *0x10(%rax)
jmp 0x37c93
movq -0x50(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0x38, %esi
callq 0x53c0
jmp 0x37c99
jmp 0x37c93
addq $0x50, %rsp
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x56c0
nopw %cs:(%rax,%rax)