// File: /workspace/github_cpp_makefile_star2_O2/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 0x3b74
testl %eax, %eax
je 0x2521
pushq $0x1
popq %rax
jmp 0x270f
movq 0x8aa0(%rip), %rbx      # 0xafc8
leaq 0x4ad5(%rip), %rsi      # 0x7004
movq %rbx, %rdi
callq 0x2160
movq %rax, %rdi
callq 0x20e0
leaq 0x4ad2(%rip), %rsi      # 0x7018
movq %rbx, %rdi
callq 0x2160
movq %rax, %rdi
callq 0x20e0
leaq 0x8c63(%rip), %r12      # 0xb1c0
movq 0x8(%r12), %r14
leaq -0x48(%rbp), %r13
leaq 0x4b0e(%rip), %rbx      # 0x707b
leaq -0x68(%rbp), %r15
cmpq (%r12), %r14
je 0x25f5
movq 0x8c22(%rip), %rdi      # 0xb1a0
movq 0x8c23(%rip), %rsi      # 0xb1a8
addq $-0x20, %r14
movq %r14, %rdx
callq 0x28f3
cmpq 0x8c10(%rip), %rax      # 0xb1a8
jne 0x2571
leaq 0x8bff(%rip), %rdi      # 0xb1a0
movq %r14, %rsi
callq 0x27a8
movq %r13, %rdi
leaq 0x4a72(%rip), %rsi      # 0x7025
movq %r14, %rdx
callq 0x280c
movq %r15, %rdi
movq %r13, %rsi
movq %rbx, %rdx
callq 0x27e3
movq 0x89f8(%rip), %rdi      # 0xafc8
movq %r15, %rsi
callq 0x2140
movq %rax, %rdi
callq 0x20e0
movq %r15, %rdi
callq 0x20d0
movq %r13, %rdi
callq 0x20d0
jmp 0x2571
movq 0x89cc(%rip), %rbx      # 0xafc8
leaq 0x4a2a(%rip), %rsi      # 0x702d
movq %rbx, %rdi
callq 0x2160
movq %rax, %rdi
callq 0x20e0
leaq 0x8bbe(%rip), %rax      # 0xb1d8
movq (%rax), %rsi
movq %rbx, %rdi
callq 0x2140
movq %rax, %rdi
callq 0x20e0
leaq 0x4a10(%rip), %rsi      # 0x7044
movq %rbx, %rdi
callq 0x2160
movq %rax, %rdi
callq 0x20e0
movq 0x8b55(%rip), %r14      # 0xb1a0
leaq -0x88(%rbp), %r12
leaq -0xa8(%rbp), %rbx
leaq -0x48(%rbp), %r15
leaq -0x68(%rbp), %r13
cmpq 0x8b40(%rip), %r14      # 0xb1a8
je 0x26f2
movq %r12, %rdi
leaq 0x49e0(%rip), %rsi      # 0x7058
movq %r14, %rdx
callq 0x280c
movq %rbx, %rdi
movq %r12, %rsi
leaq 0x49da(%rip), %rdx      # 0x7067
callq 0x27e3
movq %r15, %rdi
movq %rbx, %rsi
movq %r14, %rdx
callq 0x2882
movq %r13, %rdi
movq %r15, %rsi
leaq 0x49c1(%rip), %rdx      # 0x706e
callq 0x27e3
movq 0x890f(%rip), %rdi      # 0xafc8
movq %r13, %rsi
callq 0x2140
movq %rax, %rdi
callq 0x20e0
movq %r13, %rdi
callq 0x20d0
movq %r15, %rdi
callq 0x20d0
movq %rbx, %rdi
callq 0x20d0
movq %r12, %rdi
callq 0x20d0
addq $0x20, %r14
jmp 0x2661
movq 0x88cf(%rip), %rdi      # 0xafc8
leaq 0x497d(%rip), %rsi      # 0x707d
callq 0x2160
movq %rax, %rdi
callq 0x20e0
xorl %eax, %eax
addq $0x88, %rsp
popq %rbx
popq %r12
popq %r13
popq %r14
popq %r15
popq %rbp
retq
movq %rax, %rbx
jmp 0x2732
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0x20d0
leaq -0x48(%rbp), %rdi
jmp 0x276f
movq %rax, %rbx
jmp 0x275c
movq %rax, %rbx
jmp 0x2753
movq %rax, %rbx
jmp 0x2768
movq %rax, %rbx
leaq -0x68(%rbp), %rdi
callq 0x20d0
leaq -0x48(%rbp), %rdi
callq 0x20d0
leaq -0xa8(%rbp), %rdi
callq 0x20d0
leaq -0x88(%rbp), %rdi
callq 0x20d0
movq %rbx, %rdi
callq 0x2280