// File: 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
movq %rsp, %rbp
subq $0x100, %rsp            # imm = 0x100
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdx
movq %rdx, -0xa8(%rbp)
movq 0x8(%rdx), %rdi
movq %rdx, %rsi
addq $0x30, %rsi
addq $0x34, %rdx
callq 0x17610
movl $0x0, -0x14(%rbp)
movl $0xf0, %edi
callq 0x6420
movq -0xa8(%rbp), %rcx
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xb0(%rbp)
movq 0x8(%rcx), %rsi
movq 0x10(%rcx), %rdx
addq $0x48, %rcx
movb $0x0, -0x31(%rbp)
movb $0x0, -0x41(%rbp)
movb $0x0, -0x51(%rbp)
movb $0x0, -0x61(%rbp)
movb $0x0, -0x71(%rbp)
callq 0x14960
jmp 0x1a04a
movq -0xb0(%rbp), %rsi
movq -0xa8(%rbp), %rdi
callq 0xb860
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0xb1(%rbp)
jne 0x1a23a
movl $0xf0, %edi
callq 0x6420
movq -0xa8(%rbp), %rcx
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xc0(%rbp)
movq %rdi, -0x30(%rbp)
movb $0x1, -0x31(%rbp)
movq 0x8(%rcx), %rsi
movq 0x10(%rcx), %rdx
addq $0x48, %rcx
callq 0x139b0
jmp 0x1a0a9
movq -0xc0(%rbp), %rsi
movq -0xa8(%rbp), %rdi
callq 0xb860
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0xb1(%rbp)
jne 0x1a23a
movl $0xf0, %edi
callq 0x6420
movq -0xa8(%rbp), %rcx
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xc8(%rbp)
movq %rdi, -0x40(%rbp)
movb $0x1, -0x41(%rbp)
movq 0x8(%rcx), %rsi
movq 0x10(%rcx), %rdx
addq $0x48, %rcx
callq 0x14f60
jmp 0x1a108
movq -0xc8(%rbp), %rsi
movq -0xa8(%rbp), %rdi
callq 0xb860
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0xb1(%rbp)
jne 0x1a23a
movl $0xb0, %edi
callq 0x6420
movq -0xa8(%rbp), %rcx
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xd0(%rbp)
movq %rdi, -0x50(%rbp)
movb $0x1, -0x51(%rbp)
movq 0x8(%rcx), %rsi
movq 0x10(%rcx), %rdx
addq $0x48, %rcx
callq 0x14660
jmp 0x1a167
movq -0xd0(%rbp), %rsi
movq -0xa8(%rbp), %rdi
callq 0xb860
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0xb1(%rbp)
jne 0x1a23a
movl $0xb0, %edi
callq 0x6420
movq -0xa8(%rbp), %rcx
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xd8(%rbp)
movq %rdi, -0x60(%rbp)
movb $0x1, -0x61(%rbp)
movq 0x8(%rcx), %rsi
movq 0x10(%rcx), %rdx
addq $0x48, %rcx
callq 0x14410
jmp 0x1a1c6
movq -0xd8(%rbp), %rsi
movq -0xa8(%rbp), %rdi
callq 0xb860
movb %al, %cl
movb $0x1, %al
testb $0x1, %cl
movb %al, -0xb1(%rbp)
jne 0x1a23a
movl $0xb0, %edi
callq 0x6420
movq -0xa8(%rbp), %rcx
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0xe0(%rbp)
movq %rdi, -0x70(%rbp)
movb $0x1, -0x71(%rbp)
movq 0x8(%rcx), %rsi
movq 0x10(%rcx), %rdx
addq $0x48, %rcx
callq 0x13650
jmp 0x1a221
movq -0xe0(%rbp), %rsi
movq -0xa8(%rbp), %rdi
callq 0xb860
movb %al, -0xb1(%rbp)
movb -0xb1(%rbp), %al
andb $0x1, %al
movb %al, -0x15(%rbp)
testb $0x1, -0x15(%rbp)
je 0x1a342
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x1a347
movq -0xb0(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
movl $0xf0, %esi
callq 0x6430
jmp 0x1a479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
testb $0x1, -0x31(%rbp)
jne 0x1a293
jmp 0x1a2a1
movq -0x30(%rbp), %rdi
movl $0xf0, %esi
callq 0x6430
jmp 0x1a479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
testb $0x1, -0x41(%rbp)
jne 0x1a2ba
jmp 0x1a2c8
movq -0x40(%rbp), %rdi
movl $0xf0, %esi
callq 0x6430
jmp 0x1a479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
testb $0x1, -0x51(%rbp)
jne 0x1a2e1
jmp 0x1a2ef
movq -0x50(%rbp), %rdi
movl $0xb0, %esi
callq 0x6430
jmp 0x1a479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
testb $0x1, -0x61(%rbp)
jne 0x1a308
jmp 0x1a316
movq -0x60(%rbp), %rdi
movl $0xb0, %esi
callq 0x6430
jmp 0x1a479
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
testb $0x1, -0x71(%rbp)
jne 0x1a32f
jmp 0x1a33d
movq -0x70(%rbp), %rdi
movl $0xb0, %esi
callq 0x6430
jmp 0x1a479
jmp 0x1a42a
jmp 0x1a349
movq -0xa8(%rbp), %rax
movq 0x8(%rax), %rdi
callq 0x17510
testb $0x1, %al
jne 0x1a35f
jmp 0x1a361
jmp 0x1a349
movq -0xa8(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0xf0(%rbp)
leaq -0x99(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x6710
movq -0xe8(%rbp), %rdx
leaq 0x3349(%rip), %rsi      # 0x1d6dd
leaq -0x98(%rbp), %rdi
callq 0x7940
jmp 0x1a3a2
movq -0xf0(%rbp), %rdi
leaq -0x98(%rbp), %rsi
callq 0x17750
movb %al, -0xf1(%rbp)
jmp 0x1a3bd
movb -0xf1(%rbp), %al
xorb $-0x1, %al
movb %al, -0xf2(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x6280
leaq -0x99(%rbp), %rdi
callq 0x6480
movb -0xf2(%rbp), %al
testb $0x1, %al
jne 0x1a3ef
jmp 0x1a425
jmp 0x1a42a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
jmp 0x1a417
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x20(%rbp)
movl %eax, -0x24(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x6280
leaq -0x99(%rbp), %rdi
callq 0x6480
jmp 0x1a479
jmp 0x1a005
cmpl $0x1, -0x14(%rbp)
jge 0x1a44c
movq -0xa8(%rbp), %rax
movq 0x8(%rax), %rdi
movl 0x30(%rax), %esi
movl 0x34(%rax), %edx
callq 0x16c90
movb $0x0, -0x1(%rbp)
jmp 0x1a46b
movq -0xa8(%rbp), %rdx
movq 0x8(%rdx), %rdi
movq %rdx, %rsi
addq $0x38, %rsi
addq $0x3c, %rdx
callq 0x17610
movb $0x1, -0x1(%rbp)
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x100, %rsp            # imm = 0x100
popq %rbp
retq
movq -0x20(%rbp), %rdi
callq 0x6700
nopw %cs:(%rax,%rax)