// File: 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
subq $0x130, %rsp            # imm = 0x130
movq %rdi, -0x8(%rbp)
movq -0x8(%rbp), %rdi
movq %rdi, -0xf8(%rbp)
movq %rdi, %rax
addq $0x98, %rax
movq %rax, -0xf0(%rbp)
addq $0x68, %rdi
callq 0xc2d0
movq -0xf0(%rbp), %rdi
movq %rax, %rsi
incq %rsi
callq 0x13c90
movq -0xf0(%rbp), %rdi
callq 0x10bd0
movq %rax, -0x10(%rbp)
leaq -0x30(%rbp), %rdi
movq %rdi, -0xe8(%rbp)
callq 0x3360
movq -0xe8(%rbp), %rdi
callq 0x3300
leaq -0x70(%rbp), %rdi
callq 0x13d20
leaq -0xa0(%rbp), %rdi
callq 0xd490
movq 0xb5ab(%rip), %rdi      # 0x1efd8
leaq 0x2903(%rip), %rsi      # 0x16337
callq 0x3220
movq %rax, -0xe0(%rbp)
jmp 0x13a42
movq -0xf8(%rbp), %rdi
addq $0x68, %rdi
callq 0xc2d0
movq -0xe0(%rbp), %rdi
movq %rax, %rsi
callq 0x3070
movq %rax, -0x100(%rbp)
jmp 0x13a6a
movq -0x100(%rbp), %rdi
leaq 0x2795(%rip), %rsi      # 0x1620d
callq 0x3220
jmp 0x13a7f
movq -0xf8(%rbp), %rdi
addq $0x68, %rdi
callq 0xbac0
movq %rax, -0xb8(%rbp)
movq -0xf8(%rbp), %rdi
addq $0x68, %rdi
callq 0xba90
movq %rax, -0xc0(%rbp)
leaq -0xb8(%rbp), %rdi
leaq -0xc0(%rbp), %rsi
callq 0xd6d0
testb $0x1, %al
jne 0x13ac9
jmp 0x13c5d
leaq -0x30(%rbp), %rdi
movq %rdi, -0x108(%rbp)
callq 0x3300
leaq -0xb8(%rbp), %rdi
movq %rdi, -0x118(%rbp)
callq 0xd710
movq -0x118(%rbp), %rdi
movslq (%rax), %rax
movq %rax, -0x110(%rbp)
callq 0xd710
movq -0xf8(%rbp), %rdx
movq -0x110(%rbp), %rdi
movq -0x108(%rbp), %rcx
movslq 0x4(%rax), %rsi
addq $0x38, %rdx
leaq -0x70(%rbp), %r8
leaq -0xa0(%rbp), %r9
callq 0x11a30
jmp 0x13b31
movl $0x0, -0xc4(%rbp)
movslq -0xc4(%rbp), %rax
movq %rax, -0x120(%rbp)
leaq -0x30(%rbp), %rdi
callq 0x31a0
movq %rax, %rcx
movq -0x120(%rbp), %rax
cmpq %rcx, %rax
jae 0x13bff
movslq -0xc4(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x3450
movq %rax, -0x128(%rbp)
jmp 0x13b7e
movq -0x128(%rbp), %rax
movsbl (%rax), %eax
cmpl $0xa, %eax
je 0x13be7
movslq -0xc4(%rbp), %rsi
leaq -0x30(%rbp), %rdi
callq 0x3450
movq %rax, -0x130(%rbp)
jmp 0x13ba6
movq -0x130(%rbp), %rax
movb $0x20, (%rax)
jmp 0x13be9
movq %rax, %rcx
movl %edx, %eax
movq %rcx, -0xa8(%rbp)
movl %eax, -0xac(%rbp)
leaq -0xa0(%rbp), %rdi
callq 0xd530
leaq -0x70(%rbp), %rdi
callq 0xfff0
leaq -0x30(%rbp), %rdi
callq 0x3170
jmp 0x13c84
jmp 0x13bff
jmp 0x13beb
movl -0xc4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc4(%rbp)
jmp 0x13b3b
leaq -0x10(%rbp), %rdi
callq 0x10cb0
movq %rax, %rdi
leaq -0x30(%rbp), %rsi
callq 0x3040
jmp 0x13c16
leaq -0x10(%rbp), %rdi
callq 0x10cb0
movq %rax, %rdi
addq $0x20, %rdi
leaq -0x70(%rbp), %rsi
callq 0x13d50
jmp 0x13c31
leaq -0x10(%rbp), %rdi
xorl %esi, %esi
callq 0x10cd0
movq %rax, -0xd0(%rbp)
leaq -0xb8(%rbp), %rdi
xorl %esi, %esi
callq 0x13da0
movq %rax, -0xd8(%rbp)
jmp 0x13a96
leaq -0xa0(%rbp), %rdi
callq 0xd530
leaq -0x70(%rbp), %rdi
callq 0xfff0
leaq -0x30(%rbp), %rdi
callq 0x3170
addq $0x130, %rsp            # imm = 0x130
popq %rbp
retq
movq -0xa8(%rbp), %rdi
callq 0x33f0