#include <cstdio> #include <cstring> #include <string> #include <vector> #include <map> #include <algorithm> #include "ts.h" using namespace std; extern map<INSTR,INSTR> instr; extern vector<string> state; extern vector<char> pr,pl; extern INFO info; extern char chars[256]; int save_output(void) { FILE *s; s=fopen(info.outfile,"w"); if(s==0) return -1; if(info.output==0){ if(!info.cl){ for(int i=pl.size()-1;i>=0;i--){ fputc(pl[i],s); } } if(info.cr){ for(int i=0;i<info.maxmemory;i++){ if(i<pr.size()) fputc(pr[i],s); else fputc(info.zero,s); } } else{ for(int i=0;i<pr.size();i++){ fputc(pr[i],s); } } } if(info.output==1){ fprintf(s,"%s\n",state[info.state].c_str()); } if(info.output==2){ int n=0; for(int i=0;i<pr.size();i++) if(pr[i]==info.one) n++; for(int i=0;i<pl.size();i++) if(pl[i]==info.one) n++; fprintf(s,"%d\n",n); } fclose(s); return 0; } void print_output(void) { printf("OK.\n"); printf("%d steps\n",info.steps); printf("%d instructions\n",instr.size()); }