Plan 9 from Bell Labs’s /usr/web/sources/contrib/steve/root/sys/src/cmd/tex/web2c/misc/mft.p

Copyright © 2021 Plan 9 Foundation.
Distributed under the MIT License.
Download the Plan 9 distribution.


{3:}{4:}{$C+,A+,D-}{:4}program MFT(mffile,changefile,stylefile,texfile);
const{8:}maxbytes=10000;maxnames=1000;hashsize=353;bufsize=3000;
linelength=79;{:8}type{12:}ASCIIcode=0..255;{:12}{13:}
textfile=packed file of ASCIIcode;{:13}{50:}eightbits=0..255;
sixteenbits=0..65535;{:50}{52:}namepointer=0..maxnames;{:52}var{9:}
history:0..3;{:9}{15:}xord:array[ASCIIcode]of ASCIIcode;
xchr:array[ASCIIcode]of ASCIIcode;{:15}{23:}mffile:textfile;
changefile:textfile;stylefile:textfile;{:23}{25:}texfile:textfile;{:25}
{27:}buffer:array[0..bufsize]of ASCIIcode;{:27}{34:}line:integer;
otherline:integer;templine:integer;limit:0..bufsize;loc:0..bufsize;
inputhasended:boolean;changing:boolean;styling:boolean;{:34}{36:}
changebuffer:array[0..bufsize]of ASCIIcode;changelimit:0..bufsize;{:36}
{51:}bytemem:packed array[0..maxbytes]of ASCIIcode;
bytestart:array[0..maxnames]of sixteenbits;
link:array[0..maxnames]of sixteenbits;
ilk:array[0..maxnames]of sixteenbits;{:51}{53:}nameptr:namepointer;
byteptr:0..maxbytes;{:53}{55:}idfirst:0..bufsize;idloc:0..bufsize;
hash:array[0..hashsize]of sixteenbits;{:55}{72:}
translation:array[ASCIIcode]of namepointer;i:ASCIIcode;{:72}{74:}
trle,trge,trne,tramp,trsharp,trskip,trps,trquad:namepointer;{:74}{75:}
curtype:eightbits;curtok:integer;prevtype:eightbits;prevtok:integer;
{:75}{77:}startofline:boolean;emptybuffer:boolean;{:77}{78:}
charclass:array[ASCIIcode]of 0..21;{:78}{86:}
outbuf:array[0..linelength]of ASCIIcode;outptr:0..linelength;
outline:integer;{:86}{114:}changename,stylename,texname:cstring;{:114}
{29:}procedure error;var k,l:0..bufsize;begin{30:}
begin if styling then write(stdout,'. (style file ')else if changing
then write(stdout,'. (change file ')else write(stdout,'. (');
writeln(stdout,'l.',line:1,')');if loc>=limit then l:=limit else l:=loc;
for k:=1 to l do write(stdout,xchr[buffer[k-1]]);writeln(stdout);
for k:=1 to l do write(stdout,' ');
for k:=l+1 to limit do write(stdout,xchr[buffer[k-1]]);end{:30};
fflush(stdout);history:=2;end;{:29}{31:}procedure jumpout;begin{113:}
case history of 0:begin writeln(stdout);
write(stdout,'(No errors were found.)');end;1:begin writeln(stdout);
write(stdout,'(Did you see the warning message above?)');end;
2:begin writeln(stdout);
write(stdout,'(Pardon me, but I think I spotted something wrong.)');end;
3:begin writeln(stdout);
write(stdout,'(That was a fatal error, my friend.)');end;end{:113};
writeln(stdout);if(history<>0)and(history<>1)then uexit(1)else uexit(0);
end;{:31}{115:}procedure parsearguments;const noptions=4;
var longoptions:array[0..noptions]of getoptstruct;
getoptreturnval:integer;optionindex:cinttype;currentoption:0..noptions;
begin{120:}stylename:='plain.mft';{:120};{116:}currentoption:=0;
longoptions[currentoption].name:='help';
longoptions[currentoption].hasarg:=0;longoptions[currentoption].flag:=0;
longoptions[currentoption].val:=0;currentoption:=currentoption+1;{:116}
{117:}longoptions[currentoption].name:='version';
longoptions[currentoption].hasarg:=0;longoptions[currentoption].flag:=0;
longoptions[currentoption].val:=0;currentoption:=currentoption+1;{:117}
{118:}longoptions[currentoption].name:='change';
longoptions[currentoption].hasarg:=1;longoptions[currentoption].flag:=0;
longoptions[currentoption].val:=0;currentoption:=currentoption+1;{:118}
{119:}longoptions[currentoption].name:='style';
longoptions[currentoption].hasarg:=1;longoptions[currentoption].flag:=0;
longoptions[currentoption].val:=0;currentoption:=currentoption+1;{:119}
{121:}longoptions[currentoption].name:=0;
longoptions[currentoption].hasarg:=0;longoptions[currentoption].flag:=0;
longoptions[currentoption].val:=0;{:121};
repeat getoptreturnval:=getoptlongonly(argc,argv,'',longoptions,
addressof(optionindex));if getoptreturnval=-1 then begin;
end else if getoptreturnval=63 then begin usage(1,'mft');
end else if(strcmp(longoptions[optionindex].name,'help')=0)then begin
usage(0,MFTHELP);
end else if(strcmp(longoptions[optionindex].name,'version')=0)then begin
printversionandexit('This is MFT, Version 2.0',nil,'D.E. Knuth');
end else if(strcmp(longoptions[optionindex].name,'change')=0)then begin
changename:=extendfilename(optarg,'ch');
end else if(strcmp(longoptions[optionindex].name,'style')=0)then begin
stylename:=extendfilename(optarg,'mft');end;until getoptreturnval=-1;
if(optind+1<>argc)then begin writeln(stderr,
'mft: Need exactly one file argument.');usage(1,'mft');end;
texname:=basenamechangesuffix(cmdline(optind),'.mf','.tex');end;{:115}
procedure initialize;var{14:}i:0..255;{:14}{56:}h:0..hashsize;{:56}
begin kpsesetprogname(argv[0]);parsearguments;{10:}history:=0;{:10}{16:}
xchr[32]:=' ';xchr[33]:='!';xchr[34]:='"';xchr[35]:='#';xchr[36]:='$';
xchr[37]:='%';xchr[38]:='&';xchr[39]:='''';xchr[40]:='(';xchr[41]:=')';
xchr[42]:='*';xchr[43]:='+';xchr[44]:=',';xchr[45]:='-';xchr[46]:='.';
xchr[47]:='/';xchr[48]:='0';xchr[49]:='1';xchr[50]:='2';xchr[51]:='3';
xchr[52]:='4';xchr[53]:='5';xchr[54]:='6';xchr[55]:='7';xchr[56]:='8';
xchr[57]:='9';xchr[58]:=':';xchr[59]:=';';xchr[60]:='<';xchr[61]:='=';
xchr[62]:='>';xchr[63]:='?';xchr[64]:='@';xchr[65]:='A';xchr[66]:='B';
xchr[67]:='C';xchr[68]:='D';xchr[69]:='E';xchr[70]:='F';xchr[71]:='G';
xchr[72]:='H';xchr[73]:='I';xchr[74]:='J';xchr[75]:='K';xchr[76]:='L';
xchr[77]:='M';xchr[78]:='N';xchr[79]:='O';xchr[80]:='P';xchr[81]:='Q';
xchr[82]:='R';xchr[83]:='S';xchr[84]:='T';xchr[85]:='U';xchr[86]:='V';
xchr[87]:='W';xchr[88]:='X';xchr[89]:='Y';xchr[90]:='Z';xchr[91]:='[';
xchr[92]:='\';xchr[93]:=']';xchr[94]:='^';xchr[95]:='_';xchr[96]:='`';
xchr[97]:='a';xchr[98]:='b';xchr[99]:='c';xchr[100]:='d';xchr[101]:='e';
xchr[102]:='f';xchr[103]:='g';xchr[104]:='h';xchr[105]:='i';
xchr[106]:='j';xchr[107]:='k';xchr[108]:='l';xchr[109]:='m';
xchr[110]:='n';xchr[111]:='o';xchr[112]:='p';xchr[113]:='q';
xchr[114]:='r';xchr[115]:='s';xchr[116]:='t';xchr[117]:='u';
xchr[118]:='v';xchr[119]:='w';xchr[120]:='x';xchr[121]:='y';
xchr[122]:='z';xchr[123]:='{';xchr[124]:='|';xchr[125]:='}';
xchr[126]:='~';{:16}{17:}for i:=1 to 31 do xchr[i]:=chr(i);
for i:=127 to 255 do xchr[i]:=chr(i);{:17}{18:}
for i:=0 to 255 do xord[chr(i)]:=127;
for i:=128 to 255 do xord[xchr[i]]:=i;
for i:=1 to 126 do xord[xchr[i]]:=i;{:18}{21:}{:21}{26:}
rewrite(texfile,texname);{:26}{54:}bytestart[0]:=0;byteptr:=0;
bytestart[1]:=0;nameptr:=1;{:54}{57:}
for h:=0 to hashsize-1 do hash[h]:=0;{:57}{76:}curtype:=1;curtok:=0;
{:76}{79:}for i:=48 to 57 do charclass[i]:=0;charclass[46]:=1;
charclass[32]:=2;charclass[37]:=3;charclass[34]:=4;charclass[44]:=5;
charclass[59]:=6;charclass[40]:=7;charclass[41]:=8;
for i:=65 to 90 do charclass[i]:=9;for i:=97 to 122 do charclass[i]:=9;
charclass[95]:=9;charclass[60]:=10;charclass[61]:=10;charclass[62]:=10;
charclass[58]:=10;charclass[124]:=10;charclass[96]:=11;
charclass[39]:=11;charclass[43]:=12;charclass[45]:=12;charclass[47]:=13;
charclass[42]:=13;charclass[92]:=13;charclass[33]:=14;charclass[63]:=14;
charclass[35]:=15;charclass[38]:=15;charclass[64]:=15;charclass[36]:=15;
charclass[94]:=16;charclass[126]:=16;charclass[91]:=17;
charclass[93]:=18;charclass[123]:=19;charclass[125]:=19;
for i:=0 to 31 do charclass[i]:=9;for i:=127 to 255 do charclass[i]:=9;
charclass[13]:=21;charclass[9]:=2;charclass[12]:=2;{:79}{88:}outptr:=1;
outbuf[1]:=32;outline:=1;write(texfile,'\input mftmac');{:88}{90:}
outbuf[0]:=92;{:90};end;{:3}{24:}procedure openinput;
begin mffile:=kpseopenfile(cmdline(optind),kpsemfformat);
if changename then begin reset(changefile,changename);end;
stylefile:=kpseopenfile(stylename,kpsemftformat);end;{:24}{28:}
function inputln(var f:textfile):boolean;var finallimit:0..bufsize;
begin limit:=0;finallimit:=0;
if eof(f)then inputln:=false else begin while not eoln(f)do begin buffer
[limit]:=xord[getc(f)];limit:=limit+1;
if buffer[limit-1]<>32 then finallimit:=limit;
if limit=bufsize then begin while not eoln(f)do vgetc(f);limit:=limit-1;
if finallimit>limit then finallimit:=limit;begin writeln(stdout);
write(stdout,'! Input line too long');end;loc:=0;error;end;end;
readln(f);limit:=finallimit;inputln:=true;end;end;{:28}{37:}
function linesdontmatch:boolean;label 10;var k:0..bufsize;
begin linesdontmatch:=true;if changelimit<>limit then goto 10;
if limit>0 then for k:=0 to limit-1 do if changebuffer[k]<>buffer[k]then
goto 10;linesdontmatch:=false;10:end;{:37}{38:}
procedure primethechangebuffer;label 22,30,10;var k:0..bufsize;
begin changelimit:=0;{39:}while true do begin line:=line+1;
if not inputln(changefile)then goto 10;if limit<2 then goto 22;
if buffer[0]<>64 then goto 22;
if(buffer[1]>=88)and(buffer[1]<=90)then buffer[1]:=buffer[1]+32;
if buffer[1]=120 then goto 30;
if(buffer[1]=121)or(buffer[1]=122)then begin loc:=2;
begin writeln(stdout);write(stdout,'! Where is the matching @x?');error;
end;end;22:end;30:{:39};{40:}repeat line:=line+1;
if not inputln(changefile)then begin begin writeln(stdout);
write(stdout,'! Change file ended after @x');error;end;goto 10;end;
until limit>0;{:40};{41:}begin changelimit:=limit;
if limit>0 then for k:=0 to limit-1 do changebuffer[k]:=buffer[k];
end{:41};10:end;{:38}{42:}procedure checkchange;label 10;var n:integer;
k:0..bufsize;begin if linesdontmatch then goto 10;n:=0;
while true do begin changing:=not changing;templine:=otherline;
otherline:=line;line:=templine;line:=line+1;
if not inputln(changefile)then begin begin writeln(stdout);
write(stdout,'! Change file ended before @y');error;end;changelimit:=0;
changing:=not changing;templine:=otherline;otherline:=line;
line:=templine;goto 10;end;{43:}
if limit>1 then if buffer[0]=64 then begin if(buffer[1]>=88)and(buffer[1
]<=90)then buffer[1]:=buffer[1]+32;
if(buffer[1]=120)or(buffer[1]=122)then begin loc:=2;
begin writeln(stdout);write(stdout,'! Where is the matching @y?');error;
end;end else if buffer[1]=121 then begin if n>0 then begin loc:=2;
begin writeln(stdout);
write(stdout,'! Hmm... ',n:1,' of the preceding lines failed to match');
error;end;end;goto 10;end;end{:43};{41:}begin changelimit:=limit;
if limit>0 then for k:=0 to limit-1 do changebuffer[k]:=buffer[k];
end{:41};changing:=not changing;templine:=otherline;otherline:=line;
line:=templine;line:=line+1;
if not inputln(mffile)then begin begin writeln(stdout);
write(stdout,'! MF file ended during a change');error;end;
inputhasended:=true;goto 10;end;if linesdontmatch then n:=n+1;end;
10:end;{:42}{45:}procedure getline;label 20;
begin 20:if styling then{47:}begin line:=line+1;
if not inputln(stylefile)then begin styling:=false;line:=0;end;end{:47};
if not styling then begin if changing then{48:}begin line:=line+1;
if not inputln(changefile)then begin begin writeln(stdout);
write(stdout,'! Change file ended without @z');error;end;buffer[0]:=64;
buffer[1]:=122;limit:=2;end;
if limit>1 then if buffer[0]=64 then begin if(buffer[1]>=88)and(buffer[1
]<=90)then buffer[1]:=buffer[1]+32;
if(buffer[1]=120)or(buffer[1]=121)then begin loc:=2;
begin writeln(stdout);write(stdout,'! Where is the matching @z?');error;
end;end else if buffer[1]=122 then begin primethechangebuffer;
changing:=not changing;templine:=otherline;otherline:=line;
line:=templine;end;end;end{:48};if not changing then begin{46:}
begin line:=line+1;
if not inputln(mffile)then inputhasended:=true else if limit=changelimit
then if buffer[0]=changebuffer[0]then if changelimit>0 then checkchange;
end{:46};if changing then goto 20;end;end;end;{:45}{58:}
function lookup:namepointer;label 31;var i:0..bufsize;h:0..hashsize;
k:0..maxbytes;l:0..bufsize;p:namepointer;begin l:=idloc-idfirst;{59:}
h:=buffer[idfirst];i:=idfirst+1;
while i<idloc do begin h:=(h+h+buffer[i])mod hashsize;i:=i+1;end{:59};
{60:}p:=hash[h];
while p<>0 do begin if bytestart[p+1]-bytestart[p]=l then{61:}
begin i:=idfirst;k:=bytestart[p];
while(i<idloc)and(buffer[i]=bytemem[k])do begin i:=i+1;k:=k+1;end;
if i=idloc then goto 31;end{:61};p:=link[p];end;p:=nameptr;
link[p]:=hash[h];hash[h]:=p;31:{:60};if p=nameptr then{62:}
begin if byteptr+l>maxbytes then begin writeln(stdout);
write(stdout,'! Sorry, ','byte memory',' capacity exceeded');error;
history:=3;jumpout;end;if nameptr+1>maxnames then begin writeln(stdout);
write(stdout,'! Sorry, ','name',' capacity exceeded');error;history:=3;
jumpout;end;i:=idfirst;
while i<idloc do begin bytemem[byteptr]:=buffer[i];byteptr:=byteptr+1;
i:=i+1;end;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;{63:}
ilk[p]:=33{:63};end{:62};lookup:=p;end;{:58}{80:}procedure getnext;
label 25,85,86,30,31,10;var c:ASCIIcode;classvar:ASCIIcode;
begin prevtype:=curtype;prevtok:=curtok;if emptybuffer then{85:}
begin getline;if inputhasended then begin curtype:=2;curtok:=idfirst;
goto 10;end;buffer[limit]:=13;loc:=0;startofline:=true;
emptybuffer:=false;end{:85};25:c:=buffer[loc];idfirst:=loc;loc:=loc+1;
classvar:=charclass[c];{81:}case classvar of 0:goto 85;
1:begin classvar:=charclass[buffer[loc]];
if classvar>1 then goto 25 else if classvar<1 then goto 86;end;
2:if startofline then begin curtype:=0;curtok:=idfirst;goto 10;
end else goto 25;21:begin curtype:=1;curtok:=idfirst;goto 10;end;4:{82:}
while true do begin if buffer[loc]=34 then begin loc:=loc+1;
begin curtype:=7;curtok:=idfirst;goto 10;end;end;if loc=limit then{83:}
begin begin writeln(stdout);
write(stdout,'! Incomplete string will be ignored');error;end;goto 25;
end{:83};loc:=loc+1;end{:82};5,6,7,8:goto 31;20:{84:}
begin begin writeln(stdout);
write(stdout,'! Invalid character will be ignored');error;end;goto 25;
end{:84};others:end;while charclass[buffer[loc]]=classvar do loc:=loc+1;
goto 31;85:while charclass[buffer[loc]]=0 do loc:=loc+1;
if buffer[loc]<>46 then goto 30;
if charclass[buffer[loc+1]]<>0 then goto 30;loc:=loc+1;
86:repeat loc:=loc+1;until charclass[buffer[loc]]<>0;
30:begin curtype:=6;curtok:=idfirst;goto 10;end{:81};31:idloc:=loc;
curtok:=lookup;curtype:=ilk[curtok];10:end;{:80}{87:}
procedure flushbuffer(b:eightbits;percent:boolean);label 30;
var j,k:0..linelength;begin j:=b;
if not percent then while true do begin if j=0 then goto 30;
if outbuf[j]<>32 then goto 30;j:=j-1;end;
30:for k:=1 to j do write(texfile,xchr[outbuf[k]]);
if percent then write(texfile,xchr[37]);writeln(texfile);
outline:=outline+1;
if b<outptr then for k:=b+1 to outptr do outbuf[k-b]:=outbuf[k];
outptr:=outptr-b;end;{:87}{91:}procedure breakout;label 10;
var k:0..linelength;d:ASCIIcode;begin k:=outptr;
while true do begin if k=0 then{92:}begin begin writeln(stdout);
write(stdout,'! Line had to be broken (output l.',outline:1);end;
writeln(stdout,'):');
for k:=1 to outptr-1 do write(stdout,xchr[outbuf[k]]);writeln(stdout);
if history=0 then history:=1;flushbuffer(outptr-1,true);goto 10;end{:92}
;d:=outbuf[k];if d=32 then begin flushbuffer(k,false);goto 10;end;
if(d=92)and(outbuf[k-1]<>92)then begin flushbuffer(k-1,true);goto 10;
end;k:=k-1;end;10:end;{:91}{93:}procedure outstr(p:namepointer);
var k:0..maxbytes;
begin for k:=bytestart[p]to bytestart[p+1]-1 do begin if outptr=
linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=bytemem[k];
end;end;{:93}{94:}procedure outname(p:namepointer);var k:0..maxbytes;
t:namepointer;
begin for k:=bytestart[p]to bytestart[p+1]-1 do begin t:=translation[
bytemem[k]];if t=0 then begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=bytemem[k];end else outstr(t);end;end;
{:94}{95:}procedure outmacandname(n:ASCIIcode;p:namepointer);
begin begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=92;end;begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=n;end;
if bytestart[p+1]-bytestart[p]=1 then outname(p)else begin begin if
outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=123;
end;outname(p);begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=125;end;end;end;{:95}{96:}
procedure copy(firstloc:integer);var k:0..bufsize;
begin for k:=firstloc to loc-1 do begin if outptr=linelength then
breakout;outptr:=outptr+1;outbuf[outptr]:=buffer[k];end;end;{:96}{97:}
procedure dothetranslation;label 20,21,30,10;var k:0..bufsize;t:integer;
begin 20:if outptr>0 then flushbuffer(outptr,false);emptybuffer:=true;
while true do begin getnext;if startofline then{98:}
if curtype>=6 then begin begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=36;end;startofline:=false;
case curtype of 10:begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=92;if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=33;end;
11,12,13,14,15:begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=123;if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=125;end;others:end;
end else if curtype=1 then begin outstr(trskip);goto 20;
end else if curtype=5 then goto 20{:98};21:case curtype of 6:{105:}
if buffer[loc]=47 then if charclass[buffer[loc+1]]=0 then begin begin if
outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=92;
if outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=102;
if outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=114;
if outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=97;
if outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=99;
end;copy(curtok);getnext;begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=47;if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=123;end;getnext;copy(curtok);
begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=125;end;end else copy(curtok)else copy(curtok){:105};
7:{99:}begin begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=92;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=55;end;copy(curtok);end{:99};0:outstr(trquad);1,5:{110:}
begin begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=36;end;
if(loc<limit)and(curtype=1)then begin curtype:=29;goto 21;
end else begin begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=92;if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=112;if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=97;if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=114;end;goto 20;end;end{:110};
2:goto 10;{100:}8:outmacandname(49,curtok);9:outmacandname(50,curtok);
18:if prevtype=9 then outmacandname(49,curtok)else outmacandname(50,
curtok);10:outmacandname(51,curtok);13:outmacandname(52,curtok);
17:outmacandname(53,curtok);11:outmacandname(54,curtok);
19:outmacandname(56,curtok);20:outmacandname(63,curtok);{:100}{101:}
16,27,12:outname(curtok);23:begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=92;if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=59;end;21:begin outname(curtok);
getnext;
if curtype<>1 then if curtype<>10 then begin if outptr=linelength then
breakout;outptr:=outptr+1;outbuf[outptr]:=92;
if outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=32;
end;goto 21;end;{:101}{102:}22:outstr(translation[92]);15:outstr(trps);
24:outstr(trle);25:outstr(trge);26:outstr(trne);14:outstr(tramp);{:102}
{103:}31:begin outmacandname(50,curtok);
begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=92;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=104;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=98;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=111;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=120;end;{104:}while buffer[loc]=32 do loc:=loc+1;
begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=123;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=92;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=116;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=116;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=32;end;
while(buffer[loc]<>32)and(buffer[loc]<>37)and(buffer[loc]<>59)and(loc<
limit)do begin begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=buffer[loc];end;loc:=loc+1;end;
begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=125;end{:104};end;{:103}28,29:{108:}
begin if curtype=28 then begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=92;if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=57;end;idfirst:=loc;
while(loc<limit)and(buffer[loc]<>124)do loc:=loc+1;copy(idfirst);
if loc<limit then begin startofline:=true;loc:=loc+1;k:=loc;
while(k<limit)and(buffer[k]<>124)do k:=k+1;buffer[k]:=13;
end else begin if outbuf[outptr]=92 then begin if outptr=linelength then
breakout;outptr:=outptr+1;outbuf[outptr]:=32;end;
begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=92;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=112;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=97;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=114;end;goto 20;end;end{:108};3:{109:}
begin idfirst:=loc;loc:=limit;copy(idfirst);
if outptr=0 then begin outptr:=1;outbuf[1]:=32;end;goto 20;end{:109};
4:{111:}begin startofline:=false;getnext;t:=curtype;
while curtype>=8 do begin getnext;if curtype>=8 then ilk[curtok]:=t;end;
if curtype<>1 then if curtype<>5 then begin begin writeln(stdout);
write(stdout,'! Only symbolic tokens should appear after %%%');error;
end;goto 21;end;emptybuffer:=true;goto 20;end{:111};30,32,33:{106:}
begin if bytestart[curtok+1]-bytestart[curtok]=1 then outname(curtok)
else outmacandname(92,curtok);getnext;
if bytemem[bytestart[prevtok]]=39 then goto 21;
case prevtype of 30:begin if(curtype=6)or(curtype>=30)then begin if
outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=92;
if outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=44;
end;goto 21;end;
32:if curtype<30 then goto 21 else begin begin if outptr=linelength then
breakout;outptr:=outptr+1;outbuf[outptr]:=46;end;curtype:=30;goto 21;
end;
33:begin if curtype=33 then if bytemem[bytestart[curtok]]=39 then goto
21;if(curtype=6)or(curtype>=30)then{107:}
begin begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=95;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=123;end;
while true do begin if curtype>=30 then outname(curtok)else copy(curtok)
;if prevtype=32 then begin getnext;goto 30;end;getnext;
if curtype<30 then if curtype<>6 then goto 30;
if curtype=prevtype then if curtype=6 then begin if outptr=linelength
then breakout;outptr:=outptr+1;outbuf[outptr]:=92;
if outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=44;
end else if charclass[bytemem[bytestart[curtok]]]=charclass[bytemem[
bytestart[prevtok]]]then if bytemem[bytestart[prevtok]]<>46 then begin
if outptr=linelength then breakout;outptr:=outptr+1;outbuf[outptr]:=46;
end else begin if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=92;if outptr=linelength then breakout;outptr:=outptr+1;
outbuf[outptr]:=44;end;end;30:begin if outptr=linelength then breakout;
outptr:=outptr+1;outbuf[outptr]:=125;end;goto 21;end{:107}
else if curtype=27 then outstr(trsharp)else goto 21;end;end;end{:106};
end;end;10:end;{:97}{112:}begin initialize;
write(stdout,'This is MFT, Version 2.0');writeln(stdout,versionstring);
{65:}idloc:=18;idfirst:=16;buffer[16]:=46;buffer[17]:=46;curtok:=lookup;
ilk[curtok]:=(19);idfirst:=17;buffer[17]:=91;curtok:=lookup;
ilk[curtok]:=(16);idfirst:=17;buffer[17]:=93;curtok:=lookup;
ilk[curtok]:=(16);idfirst:=17;buffer[17]:=125;curtok:=lookup;
ilk[curtok]:=(16);idfirst:=17;buffer[17]:=123;curtok:=lookup;
ilk[curtok]:=(16);idfirst:=17;buffer[17]:=58;curtok:=lookup;
ilk[curtok]:=(20);idfirst:=16;buffer[16]:=58;buffer[17]:=58;
curtok:=lookup;ilk[curtok]:=(20);idfirst:=15;buffer[15]:=124;
buffer[16]:=124;buffer[17]:=58;curtok:=lookup;ilk[curtok]:=(20);
idfirst:=16;buffer[16]:=58;buffer[17]:=61;curtok:=lookup;
ilk[curtok]:=(16);idfirst:=17;buffer[17]:=44;curtok:=lookup;
ilk[curtok]:=(16);idfirst:=17;buffer[17]:=59;curtok:=lookup;
ilk[curtok]:=(21);idfirst:=17;buffer[17]:=92;curtok:=lookup;
ilk[curtok]:=(22);idfirst:=16;buffer[16]:=92;buffer[17]:=92;
curtok:=lookup;ilk[curtok]:=(23);idfirst:=13;buffer[13]:=97;
buffer[14]:=100;buffer[15]:=100;buffer[16]:=116;buffer[17]:=111;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=16;buffer[16]:=97;
buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(13);idfirst:=11;
buffer[11]:=97;buffer[12]:=116;buffer[13]:=108;buffer[14]:=101;
buffer[15]:=97;buffer[16]:=115;buffer[17]:=116;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=8;buffer[8]:=98;buffer[9]:=101;
buffer[10]:=103;buffer[11]:=105;buffer[12]:=110;buffer[13]:=103;
buffer[14]:=114;buffer[15]:=111;buffer[16]:=117;buffer[17]:=112;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=10;buffer[10]:=99;
buffer[11]:=111;buffer[12]:=110;buffer[13]:=116;buffer[14]:=114;
buffer[15]:=111;buffer[16]:=108;buffer[17]:=115;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=14;buffer[14]:=99;buffer[15]:=117;
buffer[16]:=108;buffer[17]:=108;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=14;buffer[14]:=99;buffer[15]:=117;buffer[16]:=114;
buffer[17]:=108;curtok:=lookup;ilk[curtok]:=(8);idfirst:=8;
buffer[8]:=100;buffer[9]:=101;buffer[10]:=108;buffer[11]:=105;
buffer[12]:=109;buffer[13]:=105;buffer[14]:=116;buffer[15]:=101;
buffer[16]:=114;buffer[17]:=115;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=11;buffer[11]:=100;buffer[12]:=105;buffer[13]:=115;
buffer[14]:=112;buffer[15]:=108;buffer[16]:=97;buffer[17]:=121;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=10;buffer[10]:=101;
buffer[11]:=110;buffer[12]:=100;buffer[13]:=103;buffer[14]:=114;
buffer[15]:=111;buffer[16]:=117;buffer[17]:=112;curtok:=lookup;
ilk[curtok]:=(10);idfirst:=10;buffer[10]:=101;buffer[11]:=118;
buffer[12]:=101;buffer[13]:=114;buffer[14]:=121;buffer[15]:=106;
buffer[16]:=111;buffer[17]:=98;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=12;buffer[12]:=101;buffer[13]:=120;buffer[14]:=105;
buffer[15]:=116;buffer[16]:=105;buffer[17]:=102;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=7;buffer[7]:=101;buffer[8]:=120;
buffer[9]:=112;buffer[10]:=97;buffer[11]:=110;buffer[12]:=100;
buffer[13]:=97;buffer[14]:=102;buffer[15]:=116;buffer[16]:=101;
buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(9);idfirst:=14;
buffer[14]:=102;buffer[15]:=114;buffer[16]:=111;buffer[17]:=109;
curtok:=lookup;ilk[curtok]:=(13);idfirst:=10;buffer[10]:=105;
buffer[11]:=110;buffer[12]:=119;buffer[13]:=105;buffer[14]:=110;
buffer[15]:=100;buffer[16]:=111;buffer[17]:=119;curtok:=lookup;
ilk[curtok]:=(13);idfirst:=11;buffer[11]:=105;buffer[12]:=110;
buffer[13]:=116;buffer[14]:=101;buffer[15]:=114;buffer[16]:=105;
buffer[17]:=109;curtok:=lookup;ilk[curtok]:=(9);idfirst:=15;
buffer[15]:=108;buffer[16]:=101;buffer[17]:=116;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=7;buffer[7]:=110;buffer[8]:=101;
buffer[9]:=119;buffer[10]:=105;buffer[11]:=110;buffer[12]:=116;
buffer[13]:=101;buffer[14]:=114;buffer[15]:=110;buffer[16]:=97;
buffer[17]:=108;curtok:=lookup;ilk[curtok]:=(9);idfirst:=16;
buffer[16]:=111;buffer[17]:=102;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=8;buffer[8]:=111;buffer[9]:=112;buffer[10]:=101;
buffer[11]:=110;buffer[12]:=119;buffer[13]:=105;buffer[14]:=110;
buffer[15]:=100;buffer[16]:=111;buffer[17]:=119;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=8;buffer[8]:=114;buffer[9]:=97;
buffer[10]:=110;buffer[11]:=100;buffer[12]:=111;buffer[13]:=109;
buffer[14]:=115;buffer[15]:=101;buffer[16]:=101;buffer[17]:=100;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=14;buffer[14]:=115;
buffer[15]:=97;buffer[16]:=118;buffer[17]:=101;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=8;buffer[8]:=115;buffer[9]:=99;buffer[10]:=97;
buffer[11]:=110;buffer[12]:=116;buffer[13]:=111;buffer[14]:=107;
buffer[15]:=101;buffer[16]:=110;buffer[17]:=115;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=11;buffer[11]:=115;buffer[12]:=104;
buffer[13]:=105;buffer[14]:=112;buffer[15]:=111;buffer[16]:=117;
buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(9);idfirst:=14;
buffer[14]:=115;buffer[15]:=116;buffer[16]:=101;buffer[17]:=112;
curtok:=lookup;ilk[curtok]:=(13);idfirst:=15;buffer[15]:=115;
buffer[16]:=116;buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=11;buffer[11]:=116;buffer[12]:=101;buffer[13]:=110;
buffer[14]:=115;buffer[15]:=105;buffer[16]:=111;buffer[17]:=110;
curtok:=lookup;ilk[curtok]:=(8);idfirst:=16;buffer[16]:=116;
buffer[17]:=111;curtok:=lookup;ilk[curtok]:=(13);idfirst:=13;
buffer[13]:=117;buffer[14]:=110;buffer[15]:=116;buffer[16]:=105;
buffer[17]:=108;curtok:=lookup;ilk[curtok]:=(13);idfirst:=15;
buffer[15]:=100;buffer[16]:=101;buffer[17]:=102;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=12;buffer[12]:=118;buffer[13]:=97;
buffer[14]:=114;buffer[15]:=100;buffer[16]:=101;buffer[17]:=102;
curtok:=lookup;ilk[curtok]:=(9);{:65}{66:}idfirst:=8;buffer[8]:=112;
buffer[9]:=114;buffer[10]:=105;buffer[11]:=109;buffer[12]:=97;
buffer[13]:=114;buffer[14]:=121;buffer[15]:=100;buffer[16]:=101;
buffer[17]:=102;curtok:=lookup;ilk[curtok]:=(9);idfirst:=6;
buffer[6]:=115;buffer[7]:=101;buffer[8]:=99;buffer[9]:=111;
buffer[10]:=110;buffer[11]:=100;buffer[12]:=97;buffer[13]:=114;
buffer[14]:=121;buffer[15]:=100;buffer[16]:=101;buffer[17]:=102;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=7;buffer[7]:=116;
buffer[8]:=101;buffer[9]:=114;buffer[10]:=116;buffer[11]:=105;
buffer[12]:=97;buffer[13]:=114;buffer[14]:=121;buffer[15]:=100;
buffer[16]:=101;buffer[17]:=102;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=12;buffer[12]:=101;buffer[13]:=110;buffer[14]:=100;
buffer[15]:=100;buffer[16]:=101;buffer[17]:=102;curtok:=lookup;
ilk[curtok]:=(10);idfirst:=15;buffer[15]:=102;buffer[16]:=111;
buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(9);idfirst:=7;
buffer[7]:=102;buffer[8]:=111;buffer[9]:=114;buffer[10]:=115;
buffer[11]:=117;buffer[12]:=102;buffer[13]:=102;buffer[14]:=105;
buffer[15]:=120;buffer[16]:=101;buffer[17]:=115;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=11;buffer[11]:=102;buffer[12]:=111;
buffer[13]:=114;buffer[14]:=101;buffer[15]:=118;buffer[16]:=101;
buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(9);idfirst:=12;
buffer[12]:=101;buffer[13]:=110;buffer[14]:=100;buffer[15]:=102;
buffer[16]:=111;buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(10);
idfirst:=13;buffer[13]:=113;buffer[14]:=117;buffer[15]:=111;
buffer[16]:=116;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=14;buffer[14]:=101;buffer[15]:=120;buffer[16]:=112;
buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(9);idfirst:=12;
buffer[12]:=115;buffer[13]:=117;buffer[14]:=102;buffer[15]:=102;
buffer[16]:=105;buffer[17]:=120;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=14;buffer[14]:=116;buffer[15]:=101;buffer[16]:=120;
buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(9);idfirst:=11;
buffer[11]:=112;buffer[12]:=114;buffer[13]:=105;buffer[14]:=109;
buffer[15]:=97;buffer[16]:=114;buffer[17]:=121;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=9;buffer[9]:=115;buffer[10]:=101;
buffer[11]:=99;buffer[12]:=111;buffer[13]:=110;buffer[14]:=100;
buffer[15]:=97;buffer[16]:=114;buffer[17]:=121;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=10;buffer[10]:=116;buffer[11]:=101;
buffer[12]:=114;buffer[13]:=116;buffer[14]:=105;buffer[15]:=97;
buffer[16]:=114;buffer[17]:=121;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=13;buffer[13]:=105;buffer[14]:=110;buffer[15]:=112;
buffer[16]:=117;buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(31);
idfirst:=10;buffer[10]:=101;buffer[11]:=110;buffer[12]:=100;
buffer[13]:=105;buffer[14]:=110;buffer[15]:=112;buffer[16]:=117;
buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(17);idfirst:=16;
buffer[16]:=105;buffer[17]:=102;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=16;buffer[16]:=102;buffer[17]:=105;curtok:=lookup;
ilk[curtok]:=(10);idfirst:=14;buffer[14]:=101;buffer[15]:=108;
buffer[16]:=115;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=12;buffer[12]:=101;buffer[13]:=108;buffer[14]:=115;
buffer[15]:=101;buffer[16]:=105;buffer[17]:=102;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=14;buffer[14]:=116;buffer[15]:=114;
buffer[16]:=117;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(17);
idfirst:=13;buffer[13]:=102;buffer[14]:=97;buffer[15]:=108;
buffer[16]:=115;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(17);
idfirst:=7;buffer[7]:=110;buffer[8]:=117;buffer[9]:=108;buffer[10]:=108;
buffer[11]:=112;buffer[12]:=105;buffer[13]:=99;buffer[14]:=116;
buffer[15]:=117;buffer[16]:=114;buffer[17]:=101;curtok:=lookup;
ilk[curtok]:=(17);idfirst:=11;buffer[11]:=110;buffer[12]:=117;
buffer[13]:=108;buffer[14]:=108;buffer[15]:=112;buffer[16]:=101;
buffer[17]:=110;curtok:=lookup;ilk[curtok]:=(17);idfirst:=11;
buffer[11]:=106;buffer[12]:=111;buffer[13]:=98;buffer[14]:=110;
buffer[15]:=97;buffer[16]:=109;buffer[17]:=101;curtok:=lookup;
ilk[curtok]:=(17);idfirst:=8;buffer[8]:=114;buffer[9]:=101;
buffer[10]:=97;buffer[11]:=100;buffer[12]:=115;buffer[13]:=116;
buffer[14]:=114;buffer[15]:=105;buffer[16]:=110;buffer[17]:=103;
curtok:=lookup;ilk[curtok]:=(17);idfirst:=9;buffer[9]:=112;
buffer[10]:=101;buffer[11]:=110;buffer[12]:=99;buffer[13]:=105;
buffer[14]:=114;buffer[15]:=99;buffer[16]:=108;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(17);idfirst:=14;buffer[14]:=103;
buffer[15]:=111;buffer[16]:=111;buffer[17]:=100;curtok:=lookup;
ilk[curtok]:=(32);idfirst:=16;buffer[16]:=61;buffer[17]:=58;
curtok:=lookup;ilk[curtok]:=(16);idfirst:=15;buffer[15]:=61;
buffer[16]:=58;buffer[17]:=124;curtok:=lookup;ilk[curtok]:=(16);
idfirst:=14;buffer[14]:=61;buffer[15]:=58;buffer[16]:=124;
buffer[17]:=62;curtok:=lookup;ilk[curtok]:=(16);idfirst:=15;
buffer[15]:=124;buffer[16]:=61;buffer[17]:=58;curtok:=lookup;
ilk[curtok]:=(16);idfirst:=14;buffer[14]:=124;buffer[15]:=61;
buffer[16]:=58;buffer[17]:=62;curtok:=lookup;ilk[curtok]:=(16);
idfirst:=14;buffer[14]:=124;buffer[15]:=61;buffer[16]:=58;
buffer[17]:=124;curtok:=lookup;ilk[curtok]:=(16);idfirst:=13;
buffer[13]:=124;buffer[14]:=61;buffer[15]:=58;buffer[16]:=124;
buffer[17]:=62;curtok:=lookup;ilk[curtok]:=(16);idfirst:=12;
buffer[12]:=124;buffer[13]:=61;buffer[14]:=58;buffer[15]:=124;
buffer[16]:=62;buffer[17]:=62;curtok:=lookup;ilk[curtok]:=(16);
idfirst:=14;buffer[14]:=107;buffer[15]:=101;buffer[16]:=114;
buffer[17]:=110;curtok:=lookup;ilk[curtok]:=(11);idfirst:=12;
buffer[12]:=115;buffer[13]:=107;buffer[14]:=105;buffer[15]:=112;
buffer[16]:=116;buffer[17]:=111;curtok:=lookup;ilk[curtok]:=(9);{:66}
{67:}idfirst:=5;buffer[5]:=110;buffer[6]:=111;buffer[7]:=114;
buffer[8]:=109;buffer[9]:=97;buffer[10]:=108;buffer[11]:=100;
buffer[12]:=101;buffer[13]:=118;buffer[14]:=105;buffer[15]:=97;
buffer[16]:=116;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=15;buffer[15]:=111;buffer[16]:=100;buffer[17]:=100;
curtok:=lookup;ilk[curtok]:=(8);idfirst:=13;buffer[13]:=107;
buffer[14]:=110;buffer[15]:=111;buffer[16]:=119;buffer[17]:=110;
curtok:=lookup;ilk[curtok]:=(8);idfirst:=11;buffer[11]:=117;
buffer[12]:=110;buffer[13]:=107;buffer[14]:=110;buffer[15]:=111;
buffer[16]:=119;buffer[17]:=110;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=15;buffer[15]:=110;buffer[16]:=111;buffer[17]:=116;
curtok:=lookup;ilk[curtok]:=(8);idfirst:=11;buffer[11]:=100;
buffer[12]:=101;buffer[13]:=99;buffer[14]:=105;buffer[15]:=109;
buffer[16]:=97;buffer[17]:=108;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=11;buffer[11]:=114;buffer[12]:=101;buffer[13]:=118;
buffer[14]:=101;buffer[15]:=114;buffer[16]:=115;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(8);idfirst:=10;buffer[10]:=109;
buffer[11]:=97;buffer[12]:=107;buffer[13]:=101;buffer[14]:=112;
buffer[15]:=97;buffer[16]:=116;buffer[17]:=104;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=11;buffer[11]:=109;buffer[12]:=97;
buffer[13]:=107;buffer[14]:=101;buffer[15]:=112;buffer[16]:=101;
buffer[17]:=110;curtok:=lookup;ilk[curtok]:=(8);idfirst:=7;
buffer[7]:=116;buffer[8]:=111;buffer[9]:=116;buffer[10]:=97;
buffer[11]:=108;buffer[12]:=119;buffer[13]:=101;buffer[14]:=105;
buffer[15]:=103;buffer[16]:=104;buffer[17]:=116;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=15;buffer[15]:=111;buffer[16]:=99;
buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(8);idfirst:=15;
buffer[15]:=104;buffer[16]:=101;buffer[17]:=120;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=13;buffer[13]:=65;buffer[14]:=83;
buffer[15]:=67;buffer[16]:=73;buffer[17]:=73;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=14;buffer[14]:=99;buffer[15]:=104;
buffer[16]:=97;buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=12;buffer[12]:=108;buffer[13]:=101;buffer[14]:=110;
buffer[15]:=103;buffer[16]:=116;buffer[17]:=104;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=5;buffer[5]:=116;buffer[6]:=117;
buffer[7]:=114;buffer[8]:=110;buffer[9]:=105;buffer[10]:=110;
buffer[11]:=103;buffer[12]:=110;buffer[13]:=117;buffer[14]:=109;
buffer[15]:=98;buffer[16]:=101;buffer[17]:=114;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=13;buffer[13]:=120;buffer[14]:=112;
buffer[15]:=97;buffer[16]:=114;buffer[17]:=116;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=13;buffer[13]:=121;buffer[14]:=112;
buffer[15]:=97;buffer[16]:=114;buffer[17]:=116;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=12;buffer[12]:=120;buffer[13]:=120;
buffer[14]:=112;buffer[15]:=97;buffer[16]:=114;buffer[17]:=116;
curtok:=lookup;ilk[curtok]:=(8);idfirst:=12;buffer[12]:=120;
buffer[13]:=121;buffer[14]:=112;buffer[15]:=97;buffer[16]:=114;
buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(8);idfirst:=12;
buffer[12]:=121;buffer[13]:=120;buffer[14]:=112;buffer[15]:=97;
buffer[16]:=114;buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=12;buffer[12]:=121;buffer[13]:=121;buffer[14]:=112;
buffer[15]:=97;buffer[16]:=114;buffer[17]:=116;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=14;buffer[14]:=115;buffer[15]:=113;
buffer[16]:=114;buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=14;buffer[14]:=109;buffer[15]:=101;buffer[16]:=120;
buffer[17]:=112;curtok:=lookup;ilk[curtok]:=(8);idfirst:=14;
buffer[14]:=109;buffer[15]:=108;buffer[16]:=111;buffer[17]:=103;
curtok:=lookup;ilk[curtok]:=(8);idfirst:=14;buffer[14]:=115;
buffer[15]:=105;buffer[16]:=110;buffer[17]:=100;curtok:=lookup;
ilk[curtok]:=(8);idfirst:=14;buffer[14]:=99;buffer[15]:=111;
buffer[16]:=115;buffer[17]:=100;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=13;buffer[13]:=102;buffer[14]:=108;buffer[15]:=111;
buffer[16]:=111;buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=4;buffer[4]:=117;buffer[5]:=110;buffer[6]:=105;buffer[7]:=102;
buffer[8]:=111;buffer[9]:=114;buffer[10]:=109;buffer[11]:=100;
buffer[12]:=101;buffer[13]:=118;buffer[14]:=105;buffer[15]:=97;
buffer[16]:=116;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=8;buffer[8]:=99;buffer[9]:=104;buffer[10]:=97;buffer[11]:=114;
buffer[12]:=101;buffer[13]:=120;buffer[14]:=105;buffer[15]:=115;
buffer[16]:=116;buffer[17]:=115;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=13;buffer[13]:=97;buffer[14]:=110;buffer[15]:=103;
buffer[16]:=108;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(8);
idfirst:=13;buffer[13]:=99;buffer[14]:=121;buffer[15]:=99;
buffer[16]:=108;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(8);{:67}
{68:}idfirst:=5;buffer[5]:=116;buffer[6]:=114;buffer[7]:=97;
buffer[8]:=99;buffer[9]:=105;buffer[10]:=110;buffer[11]:=103;
buffer[12]:=116;buffer[13]:=105;buffer[14]:=116;buffer[15]:=108;
buffer[16]:=101;buffer[17]:=115;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=2;buffer[2]:=116;buffer[3]:=114;buffer[4]:=97;buffer[5]:=99;
buffer[6]:=105;buffer[7]:=110;buffer[8]:=103;buffer[9]:=101;
buffer[10]:=113;buffer[11]:=117;buffer[12]:=97;buffer[13]:=116;
buffer[14]:=105;buffer[15]:=111;buffer[16]:=110;buffer[17]:=115;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=3;buffer[3]:=116;
buffer[4]:=114;buffer[5]:=97;buffer[6]:=99;buffer[7]:=105;
buffer[8]:=110;buffer[9]:=103;buffer[10]:=99;buffer[11]:=97;
buffer[12]:=112;buffer[13]:=115;buffer[14]:=117;buffer[15]:=108;
buffer[16]:=101;buffer[17]:=115;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=4;buffer[4]:=116;buffer[5]:=114;buffer[6]:=97;buffer[7]:=99;
buffer[8]:=105;buffer[9]:=110;buffer[10]:=103;buffer[11]:=99;
buffer[12]:=104;buffer[13]:=111;buffer[14]:=105;buffer[15]:=99;
buffer[16]:=101;buffer[17]:=115;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=6;buffer[6]:=116;buffer[7]:=114;buffer[8]:=97;buffer[9]:=99;
buffer[10]:=105;buffer[11]:=110;buffer[12]:=103;buffer[13]:=115;
buffer[14]:=112;buffer[15]:=101;buffer[16]:=99;buffer[17]:=115;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=7;buffer[7]:=116;
buffer[8]:=114;buffer[9]:=97;buffer[10]:=99;buffer[11]:=105;
buffer[12]:=110;buffer[13]:=103;buffer[14]:=112;buffer[15]:=101;
buffer[16]:=110;buffer[17]:=115;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=3;buffer[3]:=116;buffer[4]:=114;buffer[5]:=97;buffer[6]:=99;
buffer[7]:=105;buffer[8]:=110;buffer[9]:=103;buffer[10]:=99;
buffer[11]:=111;buffer[12]:=109;buffer[13]:=109;buffer[14]:=97;
buffer[15]:=110;buffer[16]:=100;buffer[17]:=115;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=5;buffer[5]:=116;buffer[6]:=114;
buffer[7]:=97;buffer[8]:=99;buffer[9]:=105;buffer[10]:=110;
buffer[11]:=103;buffer[12]:=109;buffer[13]:=97;buffer[14]:=99;
buffer[15]:=114;buffer[16]:=111;buffer[17]:=115;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=6;buffer[6]:=116;buffer[7]:=114;
buffer[8]:=97;buffer[9]:=99;buffer[10]:=105;buffer[11]:=110;
buffer[12]:=103;buffer[13]:=101;buffer[14]:=100;buffer[15]:=103;
buffer[16]:=101;buffer[17]:=115;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=5;buffer[5]:=116;buffer[6]:=114;buffer[7]:=97;buffer[8]:=99;
buffer[9]:=105;buffer[10]:=110;buffer[11]:=103;buffer[12]:=111;
buffer[13]:=117;buffer[14]:=116;buffer[15]:=112;buffer[16]:=117;
buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(30);idfirst:=6;
buffer[6]:=116;buffer[7]:=114;buffer[8]:=97;buffer[9]:=99;
buffer[10]:=105;buffer[11]:=110;buffer[12]:=103;buffer[13]:=115;
buffer[14]:=116;buffer[15]:=97;buffer[16]:=116;buffer[17]:=115;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=5;buffer[5]:=116;
buffer[6]:=114;buffer[7]:=97;buffer[8]:=99;buffer[9]:=105;
buffer[10]:=110;buffer[11]:=103;buffer[12]:=111;buffer[13]:=110;
buffer[14]:=108;buffer[15]:=105;buffer[16]:=110;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(30);{:68}{69:}idfirst:=14;buffer[14]:=121;
buffer[15]:=101;buffer[16]:=97;buffer[17]:=114;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=13;buffer[13]:=109;buffer[14]:=111;
buffer[15]:=110;buffer[16]:=116;buffer[17]:=104;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=15;buffer[15]:=100;buffer[16]:=97;
buffer[17]:=121;curtok:=lookup;ilk[curtok]:=(30);idfirst:=14;
buffer[14]:=116;buffer[15]:=105;buffer[16]:=109;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=10;buffer[10]:=99;
buffer[11]:=104;buffer[12]:=97;buffer[13]:=114;buffer[14]:=99;
buffer[15]:=111;buffer[16]:=100;buffer[17]:=101;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=11;buffer[11]:=99;buffer[12]:=104;
buffer[13]:=97;buffer[14]:=114;buffer[15]:=102;buffer[16]:=97;
buffer[17]:=109;curtok:=lookup;ilk[curtok]:=(30);idfirst:=12;
buffer[12]:=99;buffer[13]:=104;buffer[14]:=97;buffer[15]:=114;
buffer[16]:=119;buffer[17]:=100;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=12;buffer[12]:=99;buffer[13]:=104;buffer[14]:=97;
buffer[15]:=114;buffer[16]:=104;buffer[17]:=116;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=12;buffer[12]:=99;buffer[13]:=104;
buffer[14]:=97;buffer[15]:=114;buffer[16]:=100;buffer[17]:=112;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=12;buffer[12]:=99;
buffer[13]:=104;buffer[14]:=97;buffer[15]:=114;buffer[16]:=105;
buffer[17]:=99;curtok:=lookup;ilk[curtok]:=(30);idfirst:=12;
buffer[12]:=99;buffer[13]:=104;buffer[14]:=97;buffer[15]:=114;
buffer[16]:=100;buffer[17]:=120;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=12;buffer[12]:=99;buffer[13]:=104;buffer[14]:=97;
buffer[15]:=114;buffer[16]:=100;buffer[17]:=121;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=8;buffer[8]:=100;buffer[9]:=101;
buffer[10]:=115;buffer[11]:=105;buffer[12]:=103;buffer[13]:=110;
buffer[14]:=115;buffer[15]:=105;buffer[16]:=122;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=14;buffer[14]:=104;
buffer[15]:=112;buffer[16]:=112;buffer[17]:=112;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=14;buffer[14]:=118;buffer[15]:=112;
buffer[16]:=112;buffer[17]:=112;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=11;buffer[11]:=120;buffer[12]:=111;buffer[13]:=102;
buffer[14]:=102;buffer[15]:=115;buffer[16]:=101;buffer[17]:=116;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=11;buffer[11]:=121;
buffer[12]:=111;buffer[13]:=102;buffer[14]:=102;buffer[15]:=115;
buffer[16]:=101;buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=11;buffer[11]:=112;buffer[12]:=97;buffer[13]:=117;
buffer[14]:=115;buffer[15]:=105;buffer[16]:=110;buffer[17]:=103;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=6;buffer[6]:=115;
buffer[7]:=104;buffer[8]:=111;buffer[9]:=119;buffer[10]:=115;
buffer[11]:=116;buffer[12]:=111;buffer[13]:=112;buffer[14]:=112;
buffer[15]:=105;buffer[16]:=110;buffer[17]:=103;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=8;buffer[8]:=102;buffer[9]:=111;
buffer[10]:=110;buffer[11]:=116;buffer[12]:=109;buffer[13]:=97;
buffer[14]:=107;buffer[15]:=105;buffer[16]:=110;buffer[17]:=103;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=10;buffer[10]:=112;
buffer[11]:=114;buffer[12]:=111;buffer[13]:=111;buffer[14]:=102;
buffer[15]:=105;buffer[16]:=110;buffer[17]:=103;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=9;buffer[9]:=115;buffer[10]:=109;
buffer[11]:=111;buffer[12]:=111;buffer[13]:=116;buffer[14]:=104;
buffer[15]:=105;buffer[16]:=110;buffer[17]:=103;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=6;buffer[6]:=97;buffer[7]:=117;
buffer[8]:=116;buffer[9]:=111;buffer[10]:=114;buffer[11]:=111;
buffer[12]:=117;buffer[13]:=110;buffer[14]:=100;buffer[15]:=105;
buffer[16]:=110;buffer[17]:=103;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=7;buffer[7]:=103;buffer[8]:=114;buffer[9]:=97;buffer[10]:=110;
buffer[11]:=117;buffer[12]:=108;buffer[13]:=97;buffer[14]:=114;
buffer[15]:=105;buffer[16]:=116;buffer[17]:=121;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=12;buffer[12]:=102;buffer[13]:=105;
buffer[14]:=108;buffer[15]:=108;buffer[16]:=105;buffer[17]:=110;
curtok:=lookup;ilk[curtok]:=(30);idfirst:=6;buffer[6]:=116;
buffer[7]:=117;buffer[8]:=114;buffer[9]:=110;buffer[10]:=105;
buffer[11]:=110;buffer[12]:=103;buffer[13]:=99;buffer[14]:=104;
buffer[15]:=101;buffer[16]:=99;buffer[17]:=107;curtok:=lookup;
ilk[curtok]:=(30);idfirst:=6;buffer[6]:=119;buffer[7]:=97;
buffer[8]:=114;buffer[9]:=110;buffer[10]:=105;buffer[11]:=110;
buffer[12]:=103;buffer[13]:=99;buffer[14]:=104;buffer[15]:=101;
buffer[16]:=99;buffer[17]:=107;curtok:=lookup;ilk[curtok]:=(30);
idfirst:=6;buffer[6]:=98;buffer[7]:=111;buffer[8]:=117;buffer[9]:=110;
buffer[10]:=100;buffer[11]:=97;buffer[12]:=114;buffer[13]:=121;
buffer[14]:=99;buffer[15]:=104;buffer[16]:=97;buffer[17]:=114;
curtok:=lookup;ilk[curtok]:=(30);{:69}{70:}idfirst:=17;buffer[17]:=43;
curtok:=lookup;ilk[curtok]:=(12);idfirst:=17;buffer[17]:=45;
curtok:=lookup;ilk[curtok]:=(12);idfirst:=17;buffer[17]:=42;
curtok:=lookup;ilk[curtok]:=(12);idfirst:=17;buffer[17]:=47;
curtok:=lookup;ilk[curtok]:=(16);idfirst:=16;buffer[16]:=43;
buffer[17]:=43;curtok:=lookup;ilk[curtok]:=(11);idfirst:=15;
buffer[15]:=43;buffer[16]:=45;buffer[17]:=43;curtok:=lookup;
ilk[curtok]:=(15);idfirst:=15;buffer[15]:=97;buffer[16]:=110;
buffer[17]:=100;curtok:=lookup;ilk[curtok]:=(11);idfirst:=16;
buffer[16]:=111;buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(11);
idfirst:=17;buffer[17]:=60;curtok:=lookup;ilk[curtok]:=(16);idfirst:=16;
buffer[16]:=60;buffer[17]:=61;curtok:=lookup;ilk[curtok]:=(24);
idfirst:=17;buffer[17]:=62;curtok:=lookup;ilk[curtok]:=(16);idfirst:=16;
buffer[16]:=62;buffer[17]:=61;curtok:=lookup;ilk[curtok]:=(25);
idfirst:=17;buffer[17]:=61;curtok:=lookup;ilk[curtok]:=(16);idfirst:=16;
buffer[16]:=60;buffer[17]:=62;curtok:=lookup;ilk[curtok]:=(26);
idfirst:=9;buffer[9]:=115;buffer[10]:=117;buffer[11]:=98;
buffer[12]:=115;buffer[13]:=116;buffer[14]:=114;buffer[15]:=105;
buffer[16]:=110;buffer[17]:=103;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=11;buffer[11]:=115;buffer[12]:=117;buffer[13]:=98;
buffer[14]:=112;buffer[15]:=97;buffer[16]:=116;buffer[17]:=104;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=5;buffer[5]:=100;
buffer[6]:=105;buffer[7]:=114;buffer[8]:=101;buffer[9]:=99;
buffer[10]:=116;buffer[11]:=105;buffer[12]:=111;buffer[13]:=110;
buffer[14]:=116;buffer[15]:=105;buffer[16]:=109;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=13;buffer[13]:=112;
buffer[14]:=111;buffer[15]:=105;buffer[16]:=110;buffer[17]:=116;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=8;buffer[8]:=112;
buffer[9]:=114;buffer[10]:=101;buffer[11]:=99;buffer[12]:=111;
buffer[13]:=110;buffer[14]:=116;buffer[15]:=114;buffer[16]:=111;
buffer[17]:=108;curtok:=lookup;ilk[curtok]:=(9);idfirst:=7;
buffer[7]:=112;buffer[8]:=111;buffer[9]:=115;buffer[10]:=116;
buffer[11]:=99;buffer[12]:=111;buffer[13]:=110;buffer[14]:=116;
buffer[15]:=114;buffer[16]:=111;buffer[17]:=108;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=9;buffer[9]:=112;buffer[10]:=101;
buffer[11]:=110;buffer[12]:=111;buffer[13]:=102;buffer[14]:=102;
buffer[15]:=115;buffer[16]:=101;buffer[17]:=116;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=17;buffer[17]:=38;curtok:=lookup;
ilk[curtok]:=(14);idfirst:=11;buffer[11]:=114;buffer[12]:=111;
buffer[13]:=116;buffer[14]:=97;buffer[15]:=116;buffer[16]:=101;
buffer[17]:=100;curtok:=lookup;ilk[curtok]:=(11);idfirst:=11;
buffer[11]:=115;buffer[12]:=108;buffer[13]:=97;buffer[14]:=110;
buffer[15]:=116;buffer[16]:=101;buffer[17]:=100;curtok:=lookup;
ilk[curtok]:=(11);idfirst:=12;buffer[12]:=115;buffer[13]:=99;
buffer[14]:=97;buffer[15]:=108;buffer[16]:=101;buffer[17]:=100;
curtok:=lookup;ilk[curtok]:=(11);idfirst:=11;buffer[11]:=115;
buffer[12]:=104;buffer[13]:=105;buffer[14]:=102;buffer[15]:=116;
buffer[16]:=101;buffer[17]:=100;curtok:=lookup;ilk[curtok]:=(11);
idfirst:=7;buffer[7]:=116;buffer[8]:=114;buffer[9]:=97;buffer[10]:=110;
buffer[11]:=115;buffer[12]:=102;buffer[13]:=111;buffer[14]:=114;
buffer[15]:=109;buffer[16]:=101;buffer[17]:=100;curtok:=lookup;
ilk[curtok]:=(11);idfirst:=11;buffer[11]:=120;buffer[12]:=115;
buffer[13]:=99;buffer[14]:=97;buffer[15]:=108;buffer[16]:=101;
buffer[17]:=100;curtok:=lookup;ilk[curtok]:=(11);idfirst:=11;
buffer[11]:=121;buffer[12]:=115;buffer[13]:=99;buffer[14]:=97;
buffer[15]:=108;buffer[16]:=101;buffer[17]:=100;curtok:=lookup;
ilk[curtok]:=(11);idfirst:=11;buffer[11]:=122;buffer[12]:=115;
buffer[13]:=99;buffer[14]:=97;buffer[15]:=108;buffer[16]:=101;
buffer[17]:=100;curtok:=lookup;ilk[curtok]:=(11);idfirst:=1;
buffer[1]:=105;buffer[2]:=110;buffer[3]:=116;buffer[4]:=101;
buffer[5]:=114;buffer[6]:=115;buffer[7]:=101;buffer[8]:=99;
buffer[9]:=116;buffer[10]:=105;buffer[11]:=111;buffer[12]:=110;
buffer[13]:=116;buffer[14]:=105;buffer[15]:=109;buffer[16]:=101;
buffer[17]:=115;curtok:=lookup;ilk[curtok]:=(11);idfirst:=11;
buffer[11]:=110;buffer[12]:=117;buffer[13]:=109;buffer[14]:=101;
buffer[15]:=114;buffer[16]:=105;buffer[17]:=99;curtok:=lookup;
ilk[curtok]:=(18);idfirst:=12;buffer[12]:=115;buffer[13]:=116;
buffer[14]:=114;buffer[15]:=105;buffer[16]:=110;buffer[17]:=103;
curtok:=lookup;ilk[curtok]:=(18);idfirst:=11;buffer[11]:=98;
buffer[12]:=111;buffer[13]:=111;buffer[14]:=108;buffer[15]:=101;
buffer[16]:=97;buffer[17]:=110;curtok:=lookup;ilk[curtok]:=(18);
idfirst:=14;buffer[14]:=112;buffer[15]:=97;buffer[16]:=116;
buffer[17]:=104;curtok:=lookup;ilk[curtok]:=(18);idfirst:=15;
buffer[15]:=112;buffer[16]:=101;buffer[17]:=110;curtok:=lookup;
ilk[curtok]:=(18);idfirst:=11;buffer[11]:=112;buffer[12]:=105;
buffer[13]:=99;buffer[14]:=116;buffer[15]:=117;buffer[16]:=114;
buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(18);idfirst:=9;
buffer[9]:=116;buffer[10]:=114;buffer[11]:=97;buffer[12]:=110;
buffer[13]:=115;buffer[14]:=102;buffer[15]:=111;buffer[16]:=114;
buffer[17]:=109;curtok:=lookup;ilk[curtok]:=(18);idfirst:=14;
buffer[14]:=112;buffer[15]:=97;buffer[16]:=105;buffer[17]:=114;
curtok:=lookup;ilk[curtok]:=(18);{:70}{71:}idfirst:=15;buffer[15]:=101;
buffer[16]:=110;buffer[17]:=100;curtok:=lookup;ilk[curtok]:=(10);
idfirst:=14;buffer[14]:=100;buffer[15]:=117;buffer[16]:=109;
buffer[17]:=112;curtok:=lookup;ilk[curtok]:=(10);idfirst:=9;
buffer[9]:=98;buffer[10]:=97;buffer[11]:=116;buffer[12]:=99;
buffer[13]:=104;buffer[14]:=109;buffer[15]:=111;buffer[16]:=100;
buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(17);idfirst:=7;
buffer[7]:=110;buffer[8]:=111;buffer[9]:=110;buffer[10]:=115;
buffer[11]:=116;buffer[12]:=111;buffer[13]:=112;buffer[14]:=109;
buffer[15]:=111;buffer[16]:=100;buffer[17]:=101;curtok:=lookup;
ilk[curtok]:=(17);idfirst:=8;buffer[8]:=115;buffer[9]:=99;
buffer[10]:=114;buffer[11]:=111;buffer[12]:=108;buffer[13]:=108;
buffer[14]:=109;buffer[15]:=111;buffer[16]:=100;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(17);idfirst:=5;buffer[5]:=101;
buffer[6]:=114;buffer[7]:=114;buffer[8]:=111;buffer[9]:=114;
buffer[10]:=115;buffer[11]:=116;buffer[12]:=111;buffer[13]:=112;
buffer[14]:=109;buffer[15]:=111;buffer[16]:=100;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(17);idfirst:=13;buffer[13]:=105;
buffer[14]:=110;buffer[15]:=110;buffer[16]:=101;buffer[17]:=114;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=13;buffer[13]:=111;
buffer[14]:=117;buffer[15]:=116;buffer[16]:=101;buffer[17]:=114;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=9;buffer[9]:=115;
buffer[10]:=104;buffer[11]:=111;buffer[12]:=119;buffer[13]:=116;
buffer[14]:=111;buffer[15]:=107;buffer[16]:=101;buffer[17]:=110;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=9;buffer[9]:=115;
buffer[10]:=104;buffer[11]:=111;buffer[12]:=119;buffer[13]:=115;
buffer[14]:=116;buffer[15]:=97;buffer[16]:=116;buffer[17]:=115;
curtok:=lookup;ilk[curtok]:=(17);idfirst:=14;buffer[14]:=115;
buffer[15]:=104;buffer[16]:=111;buffer[17]:=119;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=6;buffer[6]:=115;buffer[7]:=104;
buffer[8]:=111;buffer[9]:=119;buffer[10]:=118;buffer[11]:=97;
buffer[12]:=114;buffer[13]:=105;buffer[14]:=97;buffer[15]:=98;
buffer[16]:=108;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=2;buffer[2]:=115;buffer[3]:=104;buffer[4]:=111;buffer[5]:=119;
buffer[6]:=100;buffer[7]:=101;buffer[8]:=112;buffer[9]:=101;
buffer[10]:=110;buffer[11]:=100;buffer[12]:=101;buffer[13]:=110;
buffer[14]:=99;buffer[15]:=105;buffer[16]:=101;buffer[17]:=115;
curtok:=lookup;ilk[curtok]:=(17);idfirst:=11;buffer[11]:=99;
buffer[12]:=111;buffer[13]:=110;buffer[14]:=116;buffer[15]:=111;
buffer[16]:=117;buffer[17]:=114;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=8;buffer[8]:=100;buffer[9]:=111;buffer[10]:=117;buffer[11]:=98;
buffer[12]:=108;buffer[13]:=101;buffer[14]:=112;buffer[15]:=97;
buffer[16]:=116;buffer[17]:=104;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=14;buffer[14]:=97;buffer[15]:=108;buffer[16]:=115;
buffer[17]:=111;curtok:=lookup;ilk[curtok]:=(9);idfirst:=11;
buffer[11]:=119;buffer[12]:=105;buffer[13]:=116;buffer[14]:=104;
buffer[15]:=112;buffer[16]:=101;buffer[17]:=110;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=8;buffer[8]:=119;buffer[9]:=105;
buffer[10]:=116;buffer[11]:=104;buffer[12]:=119;buffer[13]:=101;
buffer[14]:=105;buffer[15]:=103;buffer[16]:=104;buffer[17]:=116;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=10;buffer[10]:=100;
buffer[11]:=114;buffer[12]:=111;buffer[13]:=112;buffer[14]:=112;
buffer[15]:=105;buffer[16]:=110;buffer[17]:=103;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=11;buffer[11]:=107;buffer[12]:=101;
buffer[13]:=101;buffer[14]:=112;buffer[15]:=105;buffer[16]:=110;
buffer[17]:=103;curtok:=lookup;ilk[curtok]:=(9);idfirst:=11;
buffer[11]:=109;buffer[12]:=101;buffer[13]:=115;buffer[14]:=115;
buffer[15]:=97;buffer[16]:=103;buffer[17]:=101;curtok:=lookup;
ilk[curtok]:=(9);idfirst:=8;buffer[8]:=101;buffer[9]:=114;
buffer[10]:=114;buffer[11]:=109;buffer[12]:=101;buffer[13]:=115;
buffer[14]:=115;buffer[15]:=97;buffer[16]:=103;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=11;buffer[11]:=101;
buffer[12]:=114;buffer[13]:=114;buffer[14]:=104;buffer[15]:=101;
buffer[16]:=108;buffer[17]:=112;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=10;buffer[10]:=99;buffer[11]:=104;buffer[12]:=97;
buffer[13]:=114;buffer[14]:=108;buffer[15]:=105;buffer[16]:=115;
buffer[17]:=116;curtok:=lookup;ilk[curtok]:=(9);idfirst:=10;
buffer[10]:=108;buffer[11]:=105;buffer[12]:=103;buffer[13]:=116;
buffer[14]:=97;buffer[15]:=98;buffer[16]:=108;buffer[17]:=101;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=8;buffer[8]:=101;
buffer[9]:=120;buffer[10]:=116;buffer[11]:=101;buffer[12]:=110;
buffer[13]:=115;buffer[14]:=105;buffer[15]:=98;buffer[16]:=108;
buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(9);idfirst:=8;
buffer[8]:=104;buffer[9]:=101;buffer[10]:=97;buffer[11]:=100;
buffer[12]:=101;buffer[13]:=114;buffer[14]:=98;buffer[15]:=121;
buffer[16]:=116;buffer[17]:=101;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=9;buffer[9]:=102;buffer[10]:=111;buffer[11]:=110;
buffer[12]:=116;buffer[13]:=100;buffer[14]:=105;buffer[15]:=109;
buffer[16]:=101;buffer[17]:=110;curtok:=lookup;ilk[curtok]:=(9);
idfirst:=11;buffer[11]:=115;buffer[12]:=112;buffer[13]:=101;
buffer[14]:=99;buffer[15]:=105;buffer[16]:=97;buffer[17]:=108;
curtok:=lookup;ilk[curtok]:=(9);idfirst:=8;buffer[8]:=110;
buffer[9]:=117;buffer[10]:=109;buffer[11]:=115;buffer[12]:=112;
buffer[13]:=101;buffer[14]:=99;buffer[15]:=105;buffer[16]:=97;
buffer[17]:=108;curtok:=lookup;ilk[curtok]:=(9);idfirst:=17;
buffer[17]:=37;curtok:=lookup;ilk[curtok]:=(28);idfirst:=16;
buffer[16]:=37;buffer[17]:=37;curtok:=lookup;ilk[curtok]:=(3);
idfirst:=15;buffer[15]:=37;buffer[16]:=37;buffer[17]:=37;curtok:=lookup;
ilk[curtok]:=(4);idfirst:=14;buffer[14]:=37;buffer[15]:=37;
buffer[16]:=37;buffer[17]:=37;curtok:=lookup;ilk[curtok]:=(5);
idfirst:=17;buffer[17]:=35;curtok:=lookup;ilk[curtok]:=(27);{:71};{73:}
for i:=0 to 255 do translation[i]:=0;byteptr:=byteptr+2;
bytemem[byteptr-2]:=92;bytemem[byteptr-1]:=36;curtok:=nameptr;
nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;translation[36]:=curtok;
byteptr:=byteptr+2;bytemem[byteptr-2]:=92;bytemem[byteptr-1]:=35;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
translation[35]:=curtok;byteptr:=byteptr+2;bytemem[byteptr-2]:=92;
bytemem[byteptr-1]:=38;curtok:=nameptr;nameptr:=nameptr+1;
bytestart[nameptr]:=byteptr;translation[38]:=curtok;byteptr:=byteptr+2;
bytemem[byteptr-2]:=92;bytemem[byteptr-1]:=123;curtok:=nameptr;
nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;translation[123]:=curtok;
byteptr:=byteptr+2;bytemem[byteptr-2]:=92;bytemem[byteptr-1]:=125;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
translation[125]:=curtok;byteptr:=byteptr+2;bytemem[byteptr-2]:=92;
bytemem[byteptr-1]:=95;curtok:=nameptr;nameptr:=nameptr+1;
bytestart[nameptr]:=byteptr;translation[95]:=curtok;byteptr:=byteptr+2;
bytemem[byteptr-2]:=92;bytemem[byteptr-1]:=37;curtok:=nameptr;
nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;translation[37]:=curtok;
byteptr:=byteptr+4;bytemem[byteptr-4]:=92;bytemem[byteptr-3]:=66;
bytemem[byteptr-2]:=83;bytemem[byteptr-1]:=32;curtok:=nameptr;
nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;translation[92]:=curtok;
byteptr:=byteptr+4;bytemem[byteptr-4]:=92;bytemem[byteptr-3]:=72;
bytemem[byteptr-2]:=65;bytemem[byteptr-1]:=32;curtok:=nameptr;
nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;translation[94]:=curtok;
byteptr:=byteptr+4;bytemem[byteptr-4]:=92;bytemem[byteptr-3]:=84;
bytemem[byteptr-2]:=73;bytemem[byteptr-1]:=32;curtok:=nameptr;
nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;translation[126]:=curtok;
byteptr:=byteptr+5;bytemem[byteptr-5]:=92;bytemem[byteptr-4]:=97;
bytemem[byteptr-3]:=115;bytemem[byteptr-2]:=116;bytemem[byteptr-1]:=32;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
translation[42]:=curtok;byteptr:=byteptr+4;bytemem[byteptr-4]:=92;
bytemem[byteptr-3]:=65;bytemem[byteptr-2]:=77;bytemem[byteptr-1]:=32;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
tramp:=curtok;byteptr:=byteptr+4;bytemem[byteptr-4]:=92;
bytemem[byteptr-3]:=66;bytemem[byteptr-2]:=76;bytemem[byteptr-1]:=32;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
trskip:=curtok;byteptr:=byteptr+4;bytemem[byteptr-4]:=92;
bytemem[byteptr-3]:=83;bytemem[byteptr-2]:=72;bytemem[byteptr-1]:=32;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
trsharp:=curtok;byteptr:=byteptr+4;bytemem[byteptr-4]:=92;
bytemem[byteptr-3]:=80;bytemem[byteptr-2]:=83;bytemem[byteptr-1]:=32;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
trps:=curtok;byteptr:=byteptr+4;bytemem[byteptr-4]:=92;
bytemem[byteptr-3]:=108;bytemem[byteptr-2]:=101;bytemem[byteptr-1]:=32;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
trle:=curtok;byteptr:=byteptr+4;bytemem[byteptr-4]:=92;
bytemem[byteptr-3]:=103;bytemem[byteptr-2]:=101;bytemem[byteptr-1]:=32;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
trge:=curtok;byteptr:=byteptr+4;bytemem[byteptr-4]:=92;
bytemem[byteptr-3]:=110;bytemem[byteptr-2]:=101;bytemem[byteptr-1]:=32;
curtok:=nameptr;nameptr:=nameptr+1;bytestart[nameptr]:=byteptr;
trne:=curtok;byteptr:=byteptr+5;bytemem[byteptr-5]:=92;
bytemem[byteptr-4]:=113;bytemem[byteptr-3]:=117;bytemem[byteptr-2]:=97;
bytemem[byteptr-1]:=100;curtok:=nameptr;nameptr:=nameptr+1;
bytestart[nameptr]:=byteptr;trquad:=curtok;{:73};{44:}begin openinput;
line:=0;otherline:=0;changing:=true;primethechangebuffer;
changing:=not changing;templine:=otherline;otherline:=line;
line:=templine;styling:=true;limit:=0;loc:=1;buffer[0]:=32;
inputhasended:=false;end{:44};dothetranslation;{49:}
if changelimit<>0 then begin for loc:=0 to changelimit do buffer[loc]:=
changebuffer[loc];limit:=changelimit;changing:=true;line:=otherline;
loc:=changelimit;begin writeln(stdout);
write(stdout,'! Change file entry did not match');error;end;end{:49};
{113:}case history of 0:begin writeln(stdout);
write(stdout,'(No errors were found.)');end;1:begin writeln(stdout);
write(stdout,'(Did you see the warning message above?)');end;
2:begin writeln(stdout);
write(stdout,'(Pardon me, but I think I spotted something wrong.)');end;
3:begin writeln(stdout);
write(stdout,'(That was a fatal error, my friend.)');end;end{:113};
writeln(stdout);if(history<>0)and(history<>1)then uexit(1)else uexit(0);
end.{:112}

Bell Labs OSI certified Powered by Plan 9

(Return to Plan 9 Home Page)

Copyright © 2021 Plan 9 Foundation. All Rights Reserved.
Comments to [email protected].