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

	string var_name;
	bool res = m_feeder->str("file") 
			&& m_feeder->variable(&var_name) 
			&& m_feeder->str("=");

	/*if(m_env->m_is_local){
		var_name = "local." + var_name;	
	}*/

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

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

	try{
		m_data = new DataFile();
		string filename = m_env->m_tmpdir + "/" + var_name + "-" + to_string(m_scopes.back());
		m_data->setData(&filename);
		m_env->setData(m_scopes.back(),&var_name,m_data);
	}catch(Environment *e){
		m_error_msg = e->m_error_msg;	
		m_exit_status = 3;
		throw this;
	}catch(Data *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
leaq -0x30(%rbp), %rdi
callq 0x65a0
movq -0x160(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x158(%rbp)
leaq -0x59(%rbp), %rdi
movq %rdi, -0x150(%rbp)
callq 0x6710
movq -0x150(%rbp), %rdx
movb $0x0, -0x92(%rbp)
movb $0x0, -0x93(%rbp)
leaq 0x134c7(%rip), %rsi     # 0x1d26c
leaq -0x58(%rbp), %rdi
callq 0x7940
jmp 0x9db0
movq -0x158(%rbp), %rdi
leaq -0x58(%rbp), %rsi
callq 0x17750
movb %al, -0x161(%rbp)
jmp 0x9dc8
movb -0x161(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x162(%rbp)
jne 0x9de0
jmp 0x9e89
movq -0x160(%rbp), %rax
movq 0x8(%rax), %rdi
leaq -0x30(%rbp), %rsi
callq 0x16a90
movb %al, -0x163(%rbp)
jmp 0x9dfc
movb -0x163(%rbp), %cl
xorl %eax, %eax
testb $0x1, %cl
movb %al, -0x162(%rbp)
jne 0x9e11
jmp 0x9e89
movq -0x160(%rbp), %rax
movq 0x8(%rax), %rax
movq %rax, -0x178(%rbp)
leaq -0x91(%rbp), %rdi
movq %rdi, -0x170(%rbp)
callq 0x6710
movq -0x170(%rbp), %rdx
movb $0x1, -0x92(%rbp)
leaq 0x13894(%rip), %rsi     # 0x1d6df
leaq -0x90(%rbp), %rdi
callq 0x7940
jmp 0x9e59
movq -0x178(%rbp), %rdi
movb $0x1, -0x93(%rbp)
leaq -0x90(%rbp), %rsi
callq 0x17750
movb %al, -0x179(%rbp)
jmp 0x9e7b
movb -0x179(%rbp), %al
movb %al, -0x162(%rbp)
jmp 0x9e89
movb -0x162(%rbp), %al
movb %al, -0x17a(%rbp)
testb $0x1, -0x93(%rbp)
jne 0x9ea0
jmp 0x9eac
leaq -0x90(%rbp), %rdi
callq 0x6280
testb $0x1, -0x92(%rbp)
jne 0x9eb7
jmp 0x9ec3
leaq -0x91(%rbp), %rdi
callq 0x6480
leaq -0x58(%rbp), %rdi
callq 0x6280
leaq -0x59(%rbp), %rdi
callq 0x6480
movb -0x17a(%rbp), %al
andb $0x1, %al
movb %al, -0x31(%rbp)
testb $0x1, -0x31(%rbp)
jne 0x9fa5
movq -0x160(%rbp), %rax
movq 0x8(%rax), %rdi
movl 0x30(%rax), %esi
movl 0x34(%rax), %edx
callq 0x16c90
jmp 0x9f02
movb $0x0, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
jmp 0xa30a
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x9f86
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x9f7d
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0x9f64
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
testb $0x1, -0x93(%rbp)
jne 0x9f56
jmp 0x9f62
leaq -0x90(%rbp), %rdi
callq 0x6280
jmp 0x9f64
testb $0x1, -0x92(%rbp)
jne 0x9f6f
jmp 0x9f7b
leaq -0x91(%rbp), %rdi
callq 0x6480
jmp 0x9f7d
leaq -0x58(%rbp), %rdi
callq 0x6280
leaq -0x59(%rbp), %rdi
callq 0x6480
jmp 0xa321
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xa321
movq -0x160(%rbp), %rdx
movq 0x8(%rdx), %rdi
movq %rdx, %rsi
addq $0x38, %rsi
addq $0x3c, %rdx
callq 0x17610
jmp 0x9fc2
movl $0x50, %edi
callq 0x6420
movq %rax, -0x188(%rbp)
jmp 0x9fd5
movq -0x188(%rbp), %rdi
callq 0x9450
jmp 0x9fe3
movq -0x160(%rbp), %rax
movq -0x188(%rbp), %rcx
movq %rcx, 0x88(%rax)
movq 0x10(%rax), %rsi
addq $0xc0, %rsi
leaq 0x135b0(%rip), %rdx     # 0x1d5ba
leaq -0x118(%rbp), %rdi
callq 0x79f0
jmp 0xa018
leaq -0xf8(%rbp), %rdi
leaq -0x118(%rbp), %rsi
leaq -0x30(%rbp), %rdx
callq 0x8720
jmp 0xa031
leaq 0x13239(%rip), %rdx     # 0x1d271
leaq -0xd8(%rbp), %rdi
leaq -0xf8(%rbp), %rsi
callq 0x7bd0
jmp 0xa04d
movq -0x160(%rbp), %rdi
addq $0x48, %rdi
callq 0xa5a0
movl (%rax), %esi
leaq -0x138(%rbp), %rdi
callq 0xa480
jmp 0xa06d
leaq -0xb8(%rbp), %rdi
leaq -0xd8(%rbp), %rsi
leaq -0x138(%rbp), %rdx
callq 0x8f90
jmp 0xa089
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 0x88(%rax), %rdi
movq (%rdi), %rax
movq 0x10(%rax), %rax
leaq -0xb8(%rbp), %rsi
callq *%rax
jmp 0xa0d9
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 0x88(%rax), %rcx
leaq -0x30(%rbp), %rdx
callq 0xf250
jmp 0xa119
leaq -0xb8(%rbp), %rdi
callq 0x6280
jmp 0xa2fc
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xa1dd
movq -0x188(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
movl $0x50, %esi
callq 0x6430
jmp 0xa1dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xa1b7
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xa1ab
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
jmp 0xa19f
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%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 0xa1dd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
leaq -0xb8(%rbp), %rdi
callq 0x6280
movl -0x6c(%rbp), %eax
movl %eax, -0x194(%rbp)
movl $0x2, %ecx
cmpl %ecx, %eax
jne 0xa25c
movq -0x68(%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 0xa21f
movq -0x160(%rbp), %rax
movl $0x3, 0x80(%rax)
movl $0x8, %edi
callq 0x6200
movq %rax, %rdi
movq -0x160(%rbp), %rax
movq %rax, (%rdi)
leaq 0x1e262(%rip), %rsi     # 0x284b0
xorl %eax, %eax
movl %eax, %edx
callq 0x66d0
jmp 0xa333
movl -0x194(%rbp), %eax
movl $0x1, %ecx
cmpl %ecx, %eax
jne 0xa321
movq -0x68(%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 0xa29c
movq -0x160(%rbp), %rax
movl $0x3, 0x80(%rax)
movl $0x8, %edi
callq 0x6200
movq %rax, %rdi
movq -0x160(%rbp), %rax
movq %rax, (%rdi)
leaq 0x1e1e5(%rip), %rsi     # 0x284b0
xorl %eax, %eax
movl %eax, %edx
callq 0x66d0
jmp 0xa333
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
callq 0x6690
jmp 0xa321
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x68(%rbp)
movl %eax, -0x6c(%rbp)
callq 0x6690
jmp 0xa321
movb $0x1, -0x1(%rbp)
movl $0x1, -0x98(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x6280
movb -0x1(%rbp), %al
andb $0x1, %al
addq $0x1a0, %rsp            # imm = 0x1A0
popq %rbp
retq
leaq -0x30(%rbp), %rdi
callq 0x6280
movq -0x68(%rbp), %rdi
callq 0x6700
nopw %cs:(%rax,%rax)