// File: /workspace/github_cpp_makefile_star2_O3/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 0xfe78
leaq 0x48(%rbx), %r14
xorl %r12d, %r12d
leaq 0x18(%rsp), %r15
leaq 0x8(%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 0xdb98
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9c96
testb %al, %al
jne 0x11ff1
movl $0xf0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xcfd8
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9c96
testb %al, %al
jne 0x11ff1
movl $0xf0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xe228
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9c96
testb %al, %al
jne 0x11ff1
movl $0xb0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xd9c4
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9c96
testb %al, %al
jne 0x11ff1
movl $0xb0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xd890
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9c96
testb %al, %al
jne 0x11ff1
movl $0xb0, %edi
callq 0x6320
movq %rax, %rbp
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r14, %rcx
callq 0xce10
movq %rbx, %rdi
movq %rbp, %rsi
callq 0x9c96
testb %al, %al
je 0x12072
movq 0x8(%rbx), %rdi
callq 0xfde0
testb %al, %al
jne 0x11ff1
movq 0x8(%rbx), %rbp
movq %r15, 0x8(%rsp)
movq %r13, %rdi
leaq 0x273d(%rip), %rsi      # 0x1474e
leaq 0x2739(%rip), %rdx      # 0x14751
callq 0x74f0
movq %rbp, %rdi
movq %r13, %rsi
callq 0xff28
movl %eax, %ebp
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x12041
movq 0x18(%rsp), %rsi
incq %rsi
callq 0x6330
incl %r12d
testb %bpl, %bpl
jne 0x11ec7
movq 0x8(%rbx), %rdi
leaq 0x38(%rbx), %rsi
addq $0x3c, %rbx
movq %rbx, %rdx
callq 0xfe78
movb $0x1, %al
addq $0x28, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
testl %r12d, %r12d
jne 0x1204d
movq 0x8(%rbx), %rdi
movl 0x30(%rbx), %esi
movl 0x34(%rbx), %edx
callq 0xf828
xorl %eax, %eax
jmp 0x12063
jmp 0x1208e
jmp 0x1208e
movq %rax, %rbx
movl $0xb0, %esi
jmp 0x120bb
jmp 0x120b3
jmp 0x120b3
movq %rax, %rbx
movq 0x8(%rsp), %rdi
cmpq %r15, %rdi
je 0x120c3
movq 0x18(%rsp), %rsi
incq %rsi
jmp 0x120be
movq %rax, %rbx
movl $0xf0, %esi
movq %rbp, %rdi
callq 0x6330
movq %rbx, %rdi
callq 0x6580
nop