// File: /workspace/github_cpp_makefile_star2_O3/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 0x9daa
movq %rbx, -0x30(%rbp)
movq 0x98(%rbx), %r14
leaq -0x40(%rbp), %rcx
movq %rcx, -0x10(%rcx)
xorl %eax, %eax
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
leaq -0x80(%rbp), %rcx
movq %rcx, -0x10(%rcx)
movq %rax, -0x8(%rcx)
movb %al, (%rcx)
xorps %xmm0, %xmm0
movups %xmm0, 0x18(%rcx)
movq %rax, 0x28(%rcx)
leaq -0xb8(%rbp), %rcx
movl $0x0, (%rcx)
movq %rax, 0x8(%rcx)
movq %rcx, 0x10(%rcx)
movq %rcx, 0x18(%rcx)
movq %rax, 0x20(%rcx)
movq 0x53a6(%rip), %rdi      # 0xefd8
leaq 0x171f(%rip), %rsi      # 0xb358
movl $0x13, %edx
callq 0x2250
movq -0x30(%rbp), %rax
movq 0x70(%rax), %rsi
subq 0x68(%rax), %rsi
sarq $0x3, %rsi
movq 0x537e(%rip), %rdi      # 0xefd8
callq 0x2130
leaq 0x15b7(%rip), %rsi      # 0xb21d
movl $0x1, %edx
movq %rax, %rdi
callq 0x2250
movq -0x30(%rbp), %rax
movq 0x68(%rax), %rbx
cmpq 0x70(%rax), %rbx
je 0x9d24
movq -0x30(%rbp), %rax
leaq 0x38(%rax), %r12
leaq -0x50(%rbp), %r13
leaq -0x90(%rbp), %r15
movq $0x0, -0x48(%rbp)
movq -0x50(%rbp), %rax
movb $0x0, (%rax)
movslq (%rbx), %rdi
movslq 0x4(%rbx), %rsi
movq %r12, %rdx
movq %r13, %rcx
movq %r15, %r8
leaq -0xc0(%rbp), %r9
callq 0x8693
cmpq $0x0, -0x48(%rbp)
je 0x9ce3
xorl %eax, %eax
movq -0x50(%rbp), %rcx
cmpb $0xa, (%rcx,%rax)
je 0x9ce3
movb $0x20, (%rcx,%rax)
incq %rax
cmpq %rax, -0x48(%rbp)
ja 0x9ccc
movq %r14, %rdi
movq %r13, %rsi
callq 0x2110
leaq 0x20(%r14), %rdi
movq %r15, %rsi
callq 0x2110
movl -0x70(%rbp), %eax
movl %eax, 0x40(%r14)
leaq 0x48(%r14), %rdi
leaq -0x68(%rbp), %rsi
callq 0x9e20
addq $0x60, %r14
addq $0x8, %rbx
movq -0x30(%rbp), %rax
cmpq 0x70(%rax), %rbx
jne 0x9c98
leaq -0xc0(%rbp), %rdi
callq 0x7356
leaq -0x68(%rbp), %rdi
callq 0x4d2e
movq -0x90(%rbp), %rdi
leaq -0x80(%rbp), %rax
cmpq %rax, %rdi
je 0x9d4e
callq 0x21c0
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x9d60
callq 0x21c0
addq $0x98, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
jmp 0x9d74
movq %rax, %rbx
leaq -0xc0(%rbp), %rdi
callq 0x7356
leaq -0x90(%rbp), %rdi
callq 0x9df4
movq -0x50(%rbp), %rdi
leaq -0x40(%rbp), %rax
cmpq %rax, %rdi
je 0x9da1
callq 0x21c0
movq %rbx, %rdi
callq 0x2370
nop