home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Professional / OS2PRO194.ISO / os2 / prgramer / pascal2c / self.p < prev    next >
Text File  |  1992-08-03  |  1KB  |  23 lines

  1. program self(input, output);
  2. type s = string[255]; n=integer;
  3. var a : array [1..100] of s; i,j : integer;
  4. function t(a:integer):integer; begin if a<7 then t:=a else t:=a+11 end; function q(a:s):s;
  5.  var j:n;begin for j:=strlen(a)downto 1 do if a[j]=#39 then strinsert(#39,a,j);q:=a;end;
  6. begin
  7.    a[1] := 'program self(input, output);';
  8.    a[2] := 'type s = string[255]; n=integer;';
  9.    a[3] := 'var a : array [1..100] of s; i,j : integer;';
  10.    a[4] := 'function t(a:integer):integer; begin if a<7 then t:=a else t:=a+11 end; function q(a:s):s;';
  11.    a[5] := ' var j:n;begin for j:=strlen(a)downto 1 do if a[j]=#39 then strinsert(#39,a,j);q:=a;end;';
  12.    a[6] := 'begin';
  13.    a[18] := '   for i := 1 to 11 do begin setstrlen(a[i+6], 0);';
  14.    a[19] := '      strwrite(a[i+6],1,j,''   a['',t(i):1,''] := '''''', q(a[t(i)]), '''''';'');';
  15.    a[20] := '   end;';
  16.    a[21] := '   for i := 1 to 22 do writeln(a[i]);';
  17.    a[22] := 'end.';
  18.    for i := 1 to 11 do begin setstrlen(a[i+6], 0);
  19.       strwrite(a[i+6],1,j,'   a[',t(i):1,'] := ''', q(a[t(i)]), ''';');
  20.    end;
  21.    for i := 1 to 22 do writeln(a[i]);
  22. end.
  23.