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

	bool res = m_feeder->str("str") 
			&& m_feeder->variable(&m_var_name) 
			&& m_feeder->str("=");

	if(!res){
		m_feeder->setPos(m_start_line, m_start_char);
		return false;
	}

	string tmpdir = m_env->getImportPaths("tmpdir")->at(0);

	m_feeder->getPos(&m_end_line, &m_end_char);

	try{
		m_data = new DataStr();
		string f = m_env->m_tmpdir + "/" + m_var_name + "-" + to_string(m_scopes.back());
		m_data->setFifoName(&f);
		m_data->createFifo();
		m_env->setData(m_scopes.back(),&m_var_name,m_data);
	}catch(Environment *e){
		m_error_msg = e->m_error_msg;	
		m_exit_status = 3;
		throw this;
	}catch(DataStr *e){
		m_error_msg = e->m_error_msg;	
		m_exit_status = 3;
		throw this;
	}

	return true;
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x1a0, %rsp            # imm = 0x1A0
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rdx
movq %rdx, -0x160(%rbp)
movq 0x8(%rdx), %rdi
movq %rdx, %rsi
addq $0x30, %rsi
addq $0x34, %rdx
callq 0x17610
movq -0x160(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x158(%rbp)
leaq -0x39(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x6710
movq -0x150(%rbp), %rdx
movb $0x0, -0x72(%rbp)
movb $0x0, -0x73(%rbp)
leaq 0x12441(%rip), %rsi     # 0x1d377
leaq -0x38(%rbp), %rdi
callq 0x7940
jmp 0xaf41
movq -0x158(%rbp), %rdi
leaq -0x38(%rbp), %rsi
callq 0x17750
movb %al, -0x161(%rbp)
jmp 0xaf59
movb -0x161(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x162(%rbp)
jne 0xaf71
jmp 0xb00e
movq -0x160(%rbp), %rsi
movq 0x8(%rsi), %rdi
addq $0x88, %rsi
callq 0x16a90
movb %al, -0x163(%rbp)
jmp 0xaf90
movb -0x163(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x162(%rbp)
jne 0xafa5
jmp 0xb00e
movq -0x160(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x178(%rbp)
leaq -0x71(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x6710
movq -0x170(%rbp), %rdx
movb $0x1, -0x72(%rbp)
leaq 0x12706(%rip), %rsi     # 0x1d6df
leaq -0x70(%rbp), %rdi
callq 0x7940
jmp 0xafe4
movq -0x178(%rbp), %rdi
movb $0x1, -0x73(%rbp)
leaq -0x70(%rbp), %rsi
callq 0x17750
movb %al, -0x179(%rbp)
jmp 0xb000
movb -0x179(%rbp), %al
movb %al, -0x162(%rbp)
jmp 0xb00e
movb -0x162(%rbp), %al
movb %al, -0x17a(%rbp)
testb $0x1, -0x73(%rbp)
jne 0xb022
jmp 0xb02b
leaq -0x70(%rbp), %rdi
callq 0x6280
testb $0x1, -0x72(%rbp)
jne 0xb033
jmp 0xb03c
leaq -0x71(%rbp), %rdi
callq 0x6480
leaq -0x38(%rbp), %rdi
callq 0x6280
leaq -0x39(%rbp), %rdi
callq 0x6480
movb -0x17a(%rbp), %al
andb $0x1, %al
movb %al, -0x11(%rbp)
testb $0x1, -0x11(%rbp)
jne 0xb0f5
movq -0x160(%rbp), %rax
movq 0x8(%rax), %rdi
movl 0x30(%rax), %esi
movl 0x34(%rax), %edx
callq 0x16c90
movb $0x0, -0x1(%rbp)
jmp 0xb4d0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xb0e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xb0de
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xb0cb
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
testb $0x1, -0x73(%rbp)
jne 0xb0c0
jmp 0xb0c9
leaq -0x70(%rbp), %rdi
callq 0x6280
jmp 0xb0cb
testb $0x1, -0x72(%rbp)
jne 0xb0d3
jmp 0xb0dc
leaq -0x71(%rbp), %rdi
callq 0x6480
jmp 0xb0de
leaq -0x38(%rbp), %rdi
callq 0x6280
leaq -0x39(%rbp), %rdi
callq 0x6480
jmp 0xb4de
movq -0x160(%rbp), %rax
movq 0x10(%rax), %rdi
leaq 0x12326(%rip), %rsi     # 0x1d42d
callq 0xe4d0
movq %rax, %rdi
xorl %eax, %eax
movl %eax, %esi
callq 0xb5e0
movq %rax, %rsi
leaq -0x98(%rbp), %rdi
callq 0x61a0
movq -0x160(%rbp), %rdx
movq 0x8(%rdx), %rdi
movq %rdx, %rsi
addq $0x38, %rsi
addq $0x3c, %rdx
callq 0x17610
jmp 0xb144
movl $0x70, %edi
callq 0x6420
movq %rax, -0x188(%rbp)
jmp 0xb157
movq -0x188(%rbp), %rdi
callq 0x9800
jmp 0xb165
movq -0x160(%rbp), %rax
movq -0x188(%rbp), %rcx
movq %rcx, 0xa8(%rax)
movq 0x10(%rax), %rsi
addq $0xc0, %rsi
leaq 0x1242e(%rip), %rdx     # 0x1d5ba
leaq -0x118(%rbp), %rdi
callq 0x79f0
jmp 0xb19a
movq -0x160(%rbp), %rdx
addq $0x88, %rdx
leaq -0xf8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
callq 0x8720
jmp 0xb1bd
leaq 0x120ad(%rip), %rdx     # 0x1d271
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x7bd0
jmp 0xb1d9
movq -0x160(%rbp), %rdi
addq $0x48, %rdi
callq 0xa5a0
movl (%rax), %esi
leaq -0x138(%rbp), %rdi
callq 0xa480
jmp 0xb1f9
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x138(%rbp), %rdx
callq 0x8f90
jmp 0xb215
leaq -0x138(%rbp), %rdi
callq 0x6280
leaq -0xd8(%rbp), %rdi
callq 0x6280
leaq -0xf8(%rbp), %rdi
callq 0x6280
leaq -0x118(%rbp), %rdi
callq 0x6280
movq -0x160(%rbp), %rax
movq 0xa8(%rax), %rdi
leaq -0xb8(%rbp), %rsi
callq 0x9930
jmp 0xb261
movq -0x160(%rbp), %rax
movq 0xa8(%rax), %rdi
callq 0x98c0
jmp 0xb276
movq -0x160(%rbp), %rdi
movq 0x10(%rdi), %rax
movq %rax, -0x190(%rbp)
addq $0x48, %rdi
callq 0xa5a0
movq -0x190(%rbp), %rdi
movq %rax, %rcx
movq -0x160(%rbp), %rax
movl (%rcx), %esi
movq %rax, %rdx
addq $0x88, %rdx
movq 0xa8(%rax), %rcx
callq 0xf250
jmp 0xb2bc
leaq -0xb8(%rbp), %rdi
callq 0x6280
jmp 0xb4b0
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xb4c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xb391
movq -0x188(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
movl $0x70, %esi
callq 0x6430
jmp 0xb391
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xb36b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xb35f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
jmp 0xb353
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0x138(%rbp), %rdi
callq 0x6280
leaq -0xd8(%rbp), %rdi
callq 0x6280
leaq -0xf8(%rbp), %rdi
callq 0x6280
leaq -0x118(%rbp), %rdi
callq 0x6280
jmp 0xb391
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x6280
movl -0x4c(%rbp), %eax
movl %eax, -0x194(%rbp)
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0xb410
movq -0x48(%rbp), %rdi
callq 0x6180
movq -0x160(%rbp), %rdi
movq %rax, -0x148(%rbp)
movq -0x148(%rbp), %rsi
addq $0xa0, %rsi
addq $0x60, %rdi
callq 0x6070
jmp 0xb3d3
movq -0x160(%rbp), %rax
movl $0x3, 0x80(%rax)
movl $0x8, %edi
callq 0x6200
movq %rax, %rdi
movq -0x160(%rbp), %rax
movq %rax, (%rdi)
leaq 0x1d18e(%rip), %rsi     # 0x28590
xorl %eax, %eax
movl %eax, %edx
callq 0x66d0
jmp 0xb4e7
movl -0x194(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xb4c2
movq -0x48(%rbp), %rdi
callq 0x6180
movq -0x160(%rbp), %rdi
movq %rax, -0x140(%rbp)
movq -0x140(%rbp), %rsi
addq $0x8, %rsi
addq $0x60, %rdi
callq 0x6070
jmp 0xb450
movq -0x160(%rbp), %rax
movl $0x3, 0x80(%rax)
movl $0x8, %edi
callq 0x6200
movq %rax, %rdi
movq -0x160(%rbp), %rax
movq %rax, (%rdi)
leaq 0x1d111(%rip), %rsi     # 0x28590
xorl %eax, %eax
movl %eax, %edx
callq 0x66d0
jmp 0xb4e7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x6690
jmp 0xb4c2
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x48(%rbp)
movl %eax, -0x4c(%rbp)
callq 0x6690
jmp 0xb4c2
movb $0x1, -0x1(%rbp)
leaq -0x98(%rbp), %rdi
callq 0x6280
jmp 0xb4d0
leaq -0x98(%rbp), %rdi
callq 0x6280
jmp 0xb4de
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
movq -0x48(%rbp), %rdi
callq 0x6700
nopw (%rax,%rax)