// File: Davidc2525[P]Leaf/parser/Parser.cpp
// Function: Parser::VarDeclDefCatch(LEAF::AST::NODEU*&)
void Parser::VarDeclDefCatch(ASTU&s) {
		int c_declaraciones = 0;
		//MetaData ** declaraciones = (MetaData**)malloc(sizeof(MetaData*)*100);
		string * Tipe = new string(""); 
		MetaData * md = new MetaData();
		VarDcl(md);
		Expect(24 /* ":" */);
		Expect(_name);
		Tipe = new string(""); LexString(Tipe);
		
		cout << " " << *Tipe <<" type kind: "<<symbol_table::find(Tipe)->type->kind<<endl<<endl; 
		
		Struct * tmp = last(md->type);
		*tmp = *symbol_table::find(Tipe)->type;	
		
		Obj * o = symbol_table::insert(Obj::Var,md->tmpName,md->type);
		
		ASTU tmp_ident = ident(md->tmpName);
		set_obj(tmp_ident,o);
		s = tmp_ident;
		dump(md->type,0);				
		
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0xb0, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x80(%rbp)
movl $0x0, -0x14(%rbp)
movl $0x20, %edi
callq 0x62e0
movq %rax, -0x70(%rbp)
movq %rax, -0x78(%rbp)
movb $0x1, -0x35(%rbp)
leaq -0x21(%rbp), %rdi
movq %rdi, -0x68(%rbp)
callq 0x6500
movq -0x70(%rbp), %rdi
movq -0x68(%rbp), %rdx
leaq 0x1fdf9(%rip), %rsi     # 0x35b6d
callq 0xada0
jmp 0x15d7b
movb $0x0, -0x35(%rbp)
leaq -0x21(%rbp), %rdi
callq 0x6340
movq -0x78(%rbp), %rax
movq %rax, -0x20(%rbp)
movl $0x20, %edi
callq 0x62e0
movq %rax, %rdi
movq %rdi, %rax
movq %rax, -0x88(%rbp)
callq 0x17720
jmp 0x15dae
movq -0x80(%rbp), %rdi
movq -0x88(%rbp), %rax
movq %rax, -0x40(%rbp)
movq -0x40(%rbp), %rsi
callq 0x15120
movq -0x80(%rbp), %rdi
movl $0x18, %esi
callq 0x133a0
movq -0x80(%rbp), %rdi
movl $0x4, %esi
callq 0x133a0
movl $0x20, %edi
callq 0x62e0
movq %rax, -0x98(%rbp)
movq %rax, -0xa0(%rbp)
movb $0x1, -0x42(%rbp)
leaq -0x41(%rbp), %rdi
movq %rdi, -0x90(%rbp)
callq 0x6500
movq -0x98(%rbp), %rdi
movq -0x90(%rbp), %rdx
leaq 0x1fd4a(%rip), %rsi     # 0x35b6d
callq 0xada0
jmp 0x15e2a
movq -0xa0(%rbp), %rax
movb $0x0, -0x42(%rbp)
movq %rax, -0x20(%rbp)
leaq -0x41(%rbp), %rdi
callq 0x6340
movq -0x80(%rbp), %rdi
movq -0x20(%rbp), %rsi
callq 0x17810
movq 0x3417a(%rip), %rdi     # 0x49fd0
leaq 0x1eb9c(%rip), %rsi     # 0x349f9
callq 0x62c0
movq %rax, %rdi
movq -0x20(%rbp), %rsi
callq 0x6280
movq %rax, %rdi
leaq 0x1eb83(%rip), %rsi     # 0x349fb
callq 0x62c0
movq %rax, -0xa8(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20020
movq -0xa8(%rbp), %rdi
movq 0x18(%rax), %rax
movl 0x10(%rax), %esi
callq 0x64e0
movq %rax, %rdi
movq 0x34106(%rip), %rsi     # 0x49fb0
callq 0x6320
movq %rax, %rdi
movq 0x340f7(%rip), %rsi     # 0x49fb0
callq 0x6320
movq -0x80(%rbp), %rdi
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rsi
callq 0x178e0
movq %rax, -0x50(%rbp)
movq -0x20(%rbp), %rdi
callq 0x20020
movq 0x18(%rax), %rsi
movq -0x50(%rbp), %rdi
movl $0x30, %edx
callq 0x6230
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rsi
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rdx
movl $0x1, %edi
callq 0x1fed0
movq %rax, -0x58(%rbp)
movq -0x40(%rbp), %rax
movq 0x10(%rax), %rdi
callq 0xe3f0
movq %rax, -0x60(%rbp)
movq -0x60(%rbp), %rdi
movq -0x58(%rbp), %rsi
callq 0xe300
movq -0x80(%rbp), %rdi
movq -0x60(%rbp), %rcx
movq -0x10(%rbp), %rax
movq %rcx, (%rax)
movq -0x40(%rbp), %rax
movq 0x8(%rax), %rsi
xorl %edx, %edx
callq 0x17670
addq $0xb0, %rsp
popq %rbp
retq
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x21(%rbp), %rdi
callq 0x6340
testb $0x1, -0x35(%rbp)
jne 0x15f6e
jmp 0x15f7c
movq -0x78(%rbp), %rdi
movl $0x20, %esi
callq 0x62f0
jmp 0x15fcd
movq -0x88(%rbp), %rdi
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
movl $0x20, %esi
callq 0x62f0
jmp 0x15fcd
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x30(%rbp)
movl %eax, -0x34(%rbp)
leaq -0x41(%rbp), %rdi
callq 0x6340
testb $0x1, -0x42(%rbp)
jne 0x15fba
jmp 0x15fcb
movq -0xa0(%rbp), %rdi
movl $0x20, %esi
callq 0x62f0
jmp 0x15fcd
movq -0x30(%rbp), %rdi
callq 0x64f0
nopw %cs:(%rax,%rax)