// File: gioannides[P]Language_Processors/src/../include/ast/ast_node.hpp
// Function: CompoundStatement::render_asm(std::basic_ofstream<char, std::char_traits<char>>&, Context&)
void render_asm(std::ofstream& file,Context& contxt) {
			std::string label_id = labelGen(contxt);
			std::string scope = "SCOPE" + label_id;
			contxt.Scopes.push_back(scope);
			//std::cout << "where are the scopes?";
			//print_scopes(contxt, file);
			if(DeclarationListPtr != NULL && StatementListPtr == NULL) {

				DeclarationListPtr->render_asm(file,contxt);
			}
			if(StatementListPtr != NULL && DeclarationListPtr == NULL ) {
				//if(!contxt.reading){
					StatementListPtr->render_asm(file,contxt);
				//}
			}
			if(StatementListPtr != NULL && DeclarationListPtr != NULL ) {
				
				DeclarationListPtr->render_asm(file,contxt);
				//if(!contxt.reading){
					StatementListPtr->render_asm(file,contxt);
				//}
			}	
			if(contxt.Scopes.size()>0){
					contxt.Scopes.pop_back(); //assign the variable the scope it is in
				}
				else 
				{
					std::cout << "PROBLEMS with Scopes" << std::endl;
				}
		}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x80, %rsp
movq %rdi, -0x8(%rbp)
movq %rsi, -0x10(%rbp)
movq %rdx, -0x18(%rbp)
movq -0x8(%rbp), %rax
movq %rax, -0x78(%rbp)
movq -0x18(%rbp), %rsi
leaq -0x38(%rbp), %rdi
movq %rdi, -0x70(%rbp)
callq 0x11f70
movq -0x70(%rbp), %rdx
leaq 0x54e32(%rip), %rsi     # 0x649dd
leaq -0x58(%rbp), %rdi
callq 0x12040
jmp 0xfbb6
movq -0x18(%rbp), %rdi
addq $0x460, %rdi            # imm = 0x460
leaq -0x58(%rbp), %rsi
callq 0xc2e0
jmp 0xfbcc
movq -0x78(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xfc26
movq -0x78(%rbp), %rax
cmpq $0x0, 0x8(%rax)
jne 0xfc26
movq -0x78(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x2c050
jmp 0xfbf9
jmp 0xfc26
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
jmp 0xfd0b
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0x60(%rbp)
movl %eax, -0x64(%rbp)
leaq -0x58(%rbp), %rdi
callq 0x8280
jmp 0xfd0b
movq -0x78(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xfc55
movq -0x78(%rbp), %rax
cmpq $0x0, 0x10(%rax)
jne 0xfc55
movq -0x78(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x2c0b0
jmp 0xfc53
jmp 0xfc55
movq -0x78(%rbp), %rax
cmpq $0x0, 0x8(%rax)
je 0xfc9b
movq -0x78(%rbp), %rax
cmpq $0x0, 0x10(%rax)
je 0xfc9b
movq -0x78(%rbp), %rax
movq 0x10(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x2c050
jmp 0xfc82
movq -0x78(%rbp), %rax
movq 0x8(%rax), %rdi
movq -0x10(%rbp), %rsi
movq -0x18(%rbp), %rdx
callq 0x2c0b0
jmp 0xfc99
jmp 0xfc9b
movq -0x18(%rbp), %rdi
addq $0x460, %rdi            # imm = 0x460
callq 0xbef0
cmpq $0x0, %rax
jbe 0xfcc3
movq -0x18(%rbp), %rdi
addq $0x460, %rdi            # imm = 0x460
callq 0xfe00
jmp 0xfcf0
movq 0x782de(%rip), %rdi     # 0x87fa8
leaq 0x54d12(%rip), %rsi     # 0x649e3
callq 0x8400
movq %rax, -0x80(%rbp)
jmp 0xfcdc
movq -0x80(%rbp), %rdi
movq 0x78289(%rip), %rsi     # 0x87f70
callq 0x8450
jmp 0xfcee
jmp 0xfcf0
leaq -0x58(%rbp), %rdi
callq 0x8280
leaq -0x38(%rbp), %rdi
callq 0x8280
addq $0x80, %rsp
popq %rbp
retq
leaq -0x38(%rbp), %rdi
callq 0x8280
movq -0x60(%rbp), %rdi
callq 0x8760
nopl (%rax)