parse.c 1.1 KB

123456789101112131415161718192021222324252627282930313233
  1. main(argc,argv)
  2. int argc;
  3. char *argv[];
  4. {int fin,fout,i,j;
  5. char chr,instr[150];
  6. fin = copen ("old.test", 'r');
  7. for (i=0; ; )
  8. {if (((chr=cgetc(fin))=='\p') || (chr=='\0')) break;
  9. if (i>32) cgetc(fin);
  10. if (cgetc(fin) != '.')
  11. {while (((chr=cgetc(fin)) != '\p') && (chr != '\0')) ; break;}
  12. cgetc(fin);
  13. if ((chr=cgetc(fin)) == 'F')
  14. {instr[++i] = -1;
  15. cgetc(fin); cgetc(fin); cgetc(fin); cgetc(fin); cgetc(fin); cgetc(fin);}
  16. else {instr[++i] = chr; cgetc(fin); instr[++i] = cgetc(fin);}
  17. if (cgetc(fin) != '.')
  18. {while (((chr=cgetc(fin)) != '\p') && (chr != '\0')) ; break;}
  19. cgetc(fin); cgetc(fin);
  20. if ((chr=cgetc(fin)) == 'F')
  21. {instr[++i] = -1;
  22. cgetc(fin); cgetc(fin); cgetc(fin); cgetc(fin); cgetc(fin); cgetc(fin);}
  23. else {instr[++i] = chr; cgetc(fin); instr[++i] = cgetc(fin);}
  24. cgetc(fin);}
  25. while(instr[i] == -1) --i;
  26. instr[++i] = -2;
  27. cclose(fin);
  28. fout = copen ("new.test", 'w');
  29. for (j=0; instr[++j] != -2; )
  30. {if (instr[j]==-1) cputc('-', fout);
  31. else {cputc(instr[j], fout); cputc(instr[++j], fout);}
  32. cputc('\n', fout);}
  33. cclose(fout);}