// File: /workspace/github_cpp_makefile_star2_O2/ryuichiueda[P]GlueLang/src/Pipeline.cc
// Function: Pipeline::parse()
bool Pipeline::parse(void)
{
	m_feeder->getPos(&m_start_line, &m_start_char);

	int comnum = 0;
	while(1){
		bool res = add(new ExecSubShell(m_feeder,m_env,&m_scopes))
			|| add(new ExecForEach(m_feeder,m_env,&m_scopes))
			|| add(new ExecWhile(m_feeder,m_env,&m_scopes))
			|| add(new ExecProc(m_feeder,m_env,&m_scopes))
			|| add(new ExecIntCom(m_feeder,m_env,&m_scopes))
			|| add(new ExecExtCom(m_feeder,m_env,&m_scopes));
	//		|| add(new ExecString(m_feeder,m_env,&m_scopes));
		if(res)
			comnum++;
		else
			break;

		while(m_feeder->comment());

		if(! m_feeder->str(">>="))
			break;
	}

	if(comnum < 1){
		m_feeder->setPos(m_start_line,m_start_char);
		return false;
	}

	m_feeder->getPos(&m_end_line, &m_end_char);
	return true;
}

// Assembly:
pushq %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x28, %rsp
movq %rdi, %rbx
movq 0x8(%rdi), %rdi
leaq 0x30(%rbx), %rsi
leaq 0x34(%rbx), %rdx
callq 0xd614
leaq 0x48(%rbx), %r14
xorl %r15d, %r15d
leaq 0x8(%rsp), %r12
leaq 0x7(%rsp), %r13
movl $0xf0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xbbf4
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x8e02
testb %al, %al
jne 0xef39
movl $0xf0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xb338
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x8e02
testb %al, %al
jne 0xef39
movl $0xf0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xbfc4
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x8e02
testb %al, %al
jne 0xef39
movl $0xb0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xba20
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x8e02
testb %al, %al
jne 0xef39
movl $0xb0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xb8ec
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x8e02
testb %al, %al
jne 0xef39
movl $0xb0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xb19c
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x8e02
testb %al, %al
je 0xefa2
movq 0x8(%rbx), %rdi
callq 0xd574
testb %al, %al
jne 0xef39
movq 0x8(%rbx), %rbp
movq %r12, %rdi
leaq 0x27ba(%rip), %rsi      # 0x1170e
movq %r13, %rdx
callq 0x708c
movq %rbp, %rdi
movq %r12, %rsi
callq 0xd6ae
movl %eax, %ebp
incl %r15d
movq %r12, %rdi
callq 0x6150
testb %bpl, %bpl
jne 0xee13
movq 0x8(%rbx), %rdi
leaq 0x38(%rbx), %rsi
addq $0x3c, %rbx
movq %rbx, %rdx
callq 0xd614
movb $0x1, %al
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testl %r15d, %r15d
jne 0xef7d
movq 0x8(%rbx), %rdi
movl 0x30(%rbx), %esi
movl 0x34(%rbx), %edx
callq 0xd0a2
xorl %eax, %eax
jmp 0xef93
jmp 0xefbe
jmp 0xefbe
movq %rax, %rbx
movl $0xb0, %esi
jmp 0xefe8
jmp 0xefe0
jmp 0xefe0
movq %rax, %rbx
jmp 0xeff0
movq %rax, %rbx
leaq 0x8(%rsp), %rdi
callq 0x6150
jmp 0xeff0
movq %rax, %rbx
movl $0xf0, %esi
movq %rbp, %rdi
callq 0x6330
movq %rbx, %rdi
callq 0x6560