// File: /workspace/github_cpp_makefile_star2_O2/nikhilYadala[P]Python_to_cpp/Source/src/generated_cpp_classes.cpp
// Function: source_code::generate_cpp_classes()
void source_code::generate_cpp_classes() //declard in source_code.h
{
    	generated_cpp_classes.resize(classes.size()+1);

       std::vector< std::pair< std::string,class_declaration > >::iterator classes_itr=generated_cpp_classes.begin();
       std::string converted_code;
       

     
       converted_code.clear();
       class_declaration final_class;
            std::map< std::string,std::string > variables;  //name,pair(value,type)

     //each of the element in the classes list is considered and the final cpp code for the
     //classes is rendererd in generated_cpp_classes.
      std::cout<<"the classes size is"<<classes.size()<<"\n";

     for(std::vector < int_pair >::iterator itr=classes.begin();itr!=classes.end();itr++)
     {
      converted_code.clear();
       convert_to_cpp_classes(itr->first,itr->second,lines,converted_code,&final_class,variables);
        //removing the class name from the converted code.

         for(int j=0;j<converted_code.size();j++)
             {
              if(converted_code[j]!='\n')
                converted_code[j]=' ';
              else
                break;
             }
       classes_itr->first=converted_code;


       classes_itr->second=final_class;
       classes_itr++;
      }

}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x98, %rsp
movq %rdi, %rbx
addq $0x98, %rdi
movq 0x70(%rbx), %rsi
subq 0x68(%rbx), %rsi
sarq $0x3, %rsi
incq %rsi
callq 0x8528
movq %rbx, -0x30(%rbp)
movq 0x98(%rbx), %r14
leaq -0x40(%rbp), %rax
movq %rax, -0x10(%rax)
andq $0x0, -0x8(%rax)
leaq -0xb0(%rbp), %rcx
movq %rcx, -0x10(%rcx)
andq $0x0, -0x8(%rcx)
xorl %edx, %edx
movb %dl, (%rax)
movb %dl, (%rcx)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rcx)
andq $0x0, 0x28(%rcx)
leaq -0x78(%rbp), %rax
andl $0x0, (%rax)
andq $0x0, 0x8(%rax)
movq %rax, 0x10(%rax)
movq %rax, 0x18(%rax)
andq $0x0, 0x20(%rax)
movq 0x4bc0(%rip), %rdi      # 0xcfd8
leaq 0xf19(%rip), %rsi       # 0x9338
callq 0x21a0
movq -0x30(%rbp), %rcx
movq 0x70(%rcx), %rsi
subq 0x68(%rcx), %rsi
sarq $0x3, %rsi
movq %rax, %rdi
callq 0x2130
leaq 0xdba(%rip), %rsi       # 0x91fd
movq %rax, %rdi
callq 0x21a0
movq -0x30(%rbp), %rax
movq 0x68(%rax), %rbx
leaq 0x38(%rax), %r15
leaq -0x50(%rbp), %r12
leaq -0xc0(%rbp), %r13
movq -0x30(%rbp), %rax
cmpq 0x70(%rax), %rbx
je 0x84cd
andq $0x0, -0x48(%rbp)
movq -0x50(%rbp), %rax
movb $0x0, (%rax)
movslq (%rbx), %rdi
movslq 0x4(%rbx), %rsi
movq %r15, %rdx
movq %r12, %rcx
movq %r13, %r8
leaq -0x80(%rbp), %r9
callq 0x7394
xorl %eax, %eax
cmpq %rax, -0x48(%rbp)
jbe 0x84ac
movq -0x50(%rbp), %rcx
cmpb $0xa, (%rcx,%rax)
je 0x84ac
movb $0x20, (%rcx,%rax)
incq %rax
jmp 0x8493
movq %r14, %rdi
movq %r12, %rsi
callq 0x2110
leaq 0x20(%r14), %rdi
movq %r13, %rsi
callq 0x856a
addq $0x60, %r14
addq $0x8, %rbx
jmp 0x8462
leaq -0x80(%rbp), %rdi
callq 0x634c
leaq -0xc0(%rbp), %rdi
callq 0x6a38
leaq -0x50(%rbp), %rdi
callq 0x20e0
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x84ff
movq %rax, %rbx
leaq -0x80(%rbp), %rdi
callq 0x634c
leaq -0xc0(%rbp), %rdi
callq 0x6a38
leaq -0x50(%rbp), %rdi
callq 0x20e0
movq %rbx, %rdi
callq 0x2320