// File: /workspace/github_cpp_makefile_star2_O1/struthj[P]Python-to-C-transpiler/main.cpp
// Function: main
int main(int argc, char const *argv[]) {

  //run yylex
   if (!yylex()) {
   //print headers
     std::cout<< "#include <iostream>" << std::endl;
     std::cout<< "int main(){\n" << std::endl;
   
     
    //print and initialize identifiers    
    for(std::vector<std::string>::reverse_iterator i = characters.rbegin(); i != characters.rend(); ++i) {
      //check for duplicate identifiers
      if (std::find(identifiers.begin(), identifiers.end(), *i) == identifiers.end()){
        identifiers.push_back(*i);
        std::cout << "double " + *i + ";" << std::endl;
      }
    }
   
   std::cout<< "\n/* Begin program */ \n" << std::endl;
 
   //print main code
   std::cout << *goalStr << std::endl;
   //ending comment
   std::cout<< "/* End program */ \n" << std::endl;
   
   //print identifier statements
   
      for(std::vector<std::string>::iterator i = identifiers.begin(); i != identifiers.end(); ++i) {
      std::cout << "std::cout << \"" + *i + ":\" << " + *i + " << std::endl;" << std::endl;
    }
    std::cout << "}" << std::endl;
    return 0;
  } else {
    return 1;
  }
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
pushq %r15
pushq %r14
pushq %r13
pushq %r12
pushq %rbx
subq $0x88, %rsp
callq 0x44f0
movl %eax, %ecx
movl $0x1, %eax
testl %ecx, %ecx
jne 0x29e1
movq 0x8a3d(%rip), %rbx      # 0xafc8
leaq 0x4a72(%rip), %rsi      # 0x7004
movl $0x13, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
leaq 0x4a4b(%rip), %rsi      # 0x7018
movl $0xc, %edx
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
leaq 0x8bb8(%rip), %r13      # 0xb1c0
movq 0x8(%r13), %rbx
cmpq (%r13), %rbx
je 0x271b
leaq -0x38(%rbp), %r14
leaq -0x68(%rbp), %r12
movq 0x8b7b(%rip), %rdi      # 0xb1a0
movq 0x8b7c(%rip), %rsi      # 0xb1a8
addq $-0x20, %rbx
movq %rbx, %rdx
callq 0x2ba9
cmpq 0x8b69(%rip), %rax      # 0xb1a8
jne 0x2711
leaq 0x8b54(%rip), %rdi      # 0xb1a0
movq %rbx, %rsi
callq 0x2ac4
movq %r12, %rdi
leaq 0x49c7(%rip), %rsi      # 0x7025
movq %rbx, %rdx
callq 0x2b10
movq %r12, %rdi
leaq 0x4a0b(%rip), %rsi      # 0x707b
callq 0x22c0
movq %r14, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2695
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x269c
movups (%rcx), %xmm0
movups %xmm0, (%r14)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x8906(%rip), %rdi      # 0xafc8
callq 0x21a0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x26ff
callq 0x2140
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
cmpq %rax, %rdi
je 0x2711
callq 0x2140
cmpq (%r13), %rbx
jne 0x261e
leaq 0x490b(%rip), %rsi      # 0x702d
movl $0x16, %edx
movq 0x889a(%rip), %r14      # 0xafc8
movq %r14, %rdi
callq 0x21a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
leaq 0x8a74(%rip), %rax      # 0xb1d8
movq (%rax), %rax
movq (%rax), %rsi
movq 0x8(%rax), %rdx
movq %r14, %rdi
callq 0x21a0
movq %rax, %rbx
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
leaq 0x489d(%rip), %rsi      # 0x7044
movl $0x13, %edx
movq %r14, %rdi
callq 0x21a0
movq (%r14), %rax
movq -0x18(%rax), %rdi
addq %r14, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r14, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq 0x89be(%rip), %r14      # 0xb1a0
cmpq 0x89bf(%rip), %r14      # 0xb1a8
je 0x299d
leaq -0x58(%rbp), %rbx
leaq -0x38(%rbp), %r13
leaq -0xa8(%rbp), %r12
movq %r12, %rdi
leaq 0x4850(%rip), %rsi      # 0x7058
movq %r14, %rdx
callq 0x2b10
movq %r12, %rdi
leaq 0x484d(%rip), %rsi      # 0x7067
callq 0x22c0
leaq -0x78(%rbp), %rsi
movq %rsi, -0x88(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2849
movq %rdx, -0x88(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x78(%rbp)
jmp 0x284f
movups (%rcx), %xmm0
movups %xmm0, (%rsi)
movq 0x8(%rax), %rdx
movq %rdx, -0x80(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq (%r14), %rsi
movq 0x8(%r14), %rdx
leaq -0x88(%rbp), %rdi
callq 0x2090
movq %rbx, -0x68(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x2899
movq %rdx, -0x68(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x58(%rbp)
jmp 0x289f
movups (%rcx), %xmm0
movups %xmm0, (%rbx)
movq 0x8(%rax), %rdx
movq %rdx, -0x60(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
leaq -0x68(%rbp), %rdi
leaq 0x47ad(%rip), %rsi      # 0x706e
callq 0x22c0
movq %r13, -0x48(%rbp)
movq (%rax), %rdx
movq %rax, %rcx
addq $0x10, %rcx
cmpq %rcx, %rdx
je 0x28e6
movq %rdx, -0x48(%rbp)
movq (%rcx), %rdx
movq %rdx, -0x38(%rbp)
jmp 0x28ee
movups (%rcx), %xmm0
movups %xmm0, (%r13)
movq 0x8(%rax), %rdx
movq %rdx, -0x40(%rbp)
movq %rcx, (%rax)
movq $0x0, 0x8(%rax)
movb $0x0, 0x10(%rax)
movq -0x48(%rbp), %rsi
movq -0x40(%rbp), %rdx
movq 0x86b4(%rip), %rdi      # 0xafc8
callq 0x21a0
movq %rax, %r15
movq (%rax), %rax
movq -0x18(%rax), %rdi
addq %r15, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %r15, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x2951
callq 0x2140
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
je 0x295f
callq 0x2140
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2974
callq 0x2140
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x298c
callq 0x2140
addq $0x20, %r14
cmpq 0x8811(%rip), %r14      # 0xb1a8
jne 0x27fe
leaq 0x46d9(%rip), %rsi      # 0x707d
movl $0x1, %edx
movq 0x8618(%rip), %rbx      # 0xafc8
movq %rbx, %rdi
callq 0x21a0
movq (%rbx), %rax
movq -0x18(%rax), %rdi
addq %rbx, %rdi
movl $0xa, %esi
callq 0x2150
movsbl %al, %esi
movq %rbx, %rdi
callq 0x2030
movq %rax, %rdi
callq 0x20f0
xorl %eax, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %r15
jmp 0x2a18
movq %rax, %r15
jmp 0x2a56
movq %rax, %r15
jmp 0x2a41
movq %rax, %r15
jmp 0x2a33
movq %rax, %r15
movq -0x48(%rbp), %rdi
cmpq %r14, %rdi
je 0x2a18
callq 0x2140
movq -0x68(%rbp), %rdi
leaq -0x58(%rbp), %rax
jmp 0x2a64
movq %rax, %r15
movq -0x48(%rbp), %rdi
cmpq %r13, %rdi
je 0x2a33
callq 0x2140
movq -0x68(%rbp), %rdi
cmpq %rbx, %rdi
je 0x2a41
callq 0x2140
movq -0x88(%rbp), %rdi
leaq -0x78(%rbp), %rax
cmpq %rax, %rdi
je 0x2a56
callq 0x2140
movq -0xa8(%rbp), %rdi
leaq -0x98(%rbp), %rax
cmpq %rax, %rdi
je 0x2a6e
callq 0x2140
movq %r15, %rdi
callq 0x2290