// File: /workspace/github_cpp_makefile_star2_O1/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 $0x38, %rsp
movq %rdi, %rbx
movq 0x8(%rdi), %rdi
leaq 0x30(%rbx), %rsi
leaq 0x34(%rbx), %rdx
movq %rsi, 0x10(%rsp)
movq %rdx, 0x8(%rsp)
callq 0x1003e
leaq 0x48(%rbx), %r12
xorl %r13d, %r13d
leaq 0x28(%rsp), %rbp
leaq 0x18(%rsp), %r14
movl $0xf0, %edi
callq 0x6320
movq %rax, %r15
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r12, %rcx
callq 0xdbdc
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9cc2
testb %al, %al
jne 0x1220f
movl $0xf0, %edi
callq 0x6320
movq %rax, %r15
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r12, %rcx
callq 0xd024
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9cc2
testb %al, %al
jne 0x1220f
movl $0xf0, %edi
callq 0x6320
movq %rax, %r15
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r12, %rcx
callq 0xe264
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9cc2
testb %al, %al
jne 0x1220f
movl $0xb0, %edi
callq 0x6320
movq %rax, %r15
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r12, %rcx
callq 0xda08
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9cc2
testb %al, %al
jne 0x1220f
movl $0xb0, %edi
callq 0x6320
movq %rax, %r15
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r12, %rcx
callq 0xd8d4
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9cc2
testb %al, %al
jne 0x1220f
movl $0xb0, %edi
callq 0x6320
movq %rax, %r15
movq 0x8(%rbx), %rsi
movq 0x10(%rbx), %rdx
movq %rax, %rdi
movq %r12, %rcx
callq 0xce5c
movq %rbx, %rdi
movq %r15, %rsi
callq 0x9cc2
testb %al, %al
je 0x1226e
movq 0x8(%rbx), %rdi
callq 0xffa2
testb %al, %al
jne 0x1220f
movq 0x8(%rbx), %r15
movq %rbp, 0x18(%rsp)
movq %r14, %rdi
leaq 0x2505(%rip), %rsi      # 0x14734
leaq 0x2501(%rip), %rdx      # 0x14737
callq 0x74e6
movq %r15, %rdi
movq %r14, %rsi
callq 0x100e8
movl %eax, %r15d
incl %r13d
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x12263
movq 0x28(%rsp), %rsi
incq %rsi
callq 0x6330
testb %r15b, %r15b
jne 0x120e9
jmp 0x12273
xorl %r15d, %r15d
jmp 0x12263
movq 0x8(%rbx), %rdi
testl %r13d, %r13d
jle 0x1228e
leaq 0x38(%rbx), %rsi
addq $0x3c, %rbx
movq %rbx, %rdx
callq 0x1003e
jmp 0x122a1
movq 0x10(%rsp), %rax
movl (%rax), %esi
movq 0x8(%rsp), %rax
movl (%rax), %edx
callq 0xf958
testl %r13d, %r13d
setg %al
addq $0x38, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x122ba
jmp 0x122ba
movq %rax, %rbx
movl $0xb0, %esi
jmp 0x122e7
jmp 0x122df
jmp 0x122df
movq %rax, %rbx
movq 0x18(%rsp), %rdi
cmpq %rbp, %rdi
je 0x122ef
movq 0x28(%rsp), %rsi
incq %rsi
jmp 0x122ea
movq %rax, %rbx
movl $0xf0, %esi
movq %r15, %rdi
callq 0x6330
movq %rbx, %rdi
callq 0x6580
nop