Add original unix v6
This commit is contained in:
@@ -0,0 +1,214 @@
|
||||
skip
|
||||
collect save
|
||||
skip2 sk
|
||||
|
||||
cont coll save out asym agobl csym cgobl incl decl sk2 sk
|
||||
|
||||
collect/'/agobl;
|
||||
collect/"/agobl;
|
||||
collect/</agobl;
|
||||
collect/\//agobl;
|
||||
collect/\\/agobl;
|
||||
collect/:/asym;
|
||||
collect/a/cont;
|
||||
collect/b/cont;
|
||||
collect/c/cont;
|
||||
collect/d/cont;
|
||||
collect/e/cont;
|
||||
collect/f/cont;
|
||||
collect/g/cont;
|
||||
collect/h/cont;
|
||||
collect/i/cont;
|
||||
collect/j/cont;
|
||||
collect/k/cont;
|
||||
collect/l/cont;
|
||||
collect/m/cont;
|
||||
collect/n/cont;
|
||||
collect/o/cont;
|
||||
collect/p/cont;
|
||||
collect/q/cont;
|
||||
collect/r/cont;
|
||||
collect/s/cont;
|
||||
collect/t/cont;
|
||||
collect/u/cont;
|
||||
collect/v/cont;
|
||||
collect/w/cont;
|
||||
collect/x/cont;
|
||||
collect/y/cont;
|
||||
collect/z/cont;
|
||||
collect/A/cont;
|
||||
collect/B/cont;
|
||||
collect/C/cont;
|
||||
collect/D/cont;
|
||||
collect/E/cont;
|
||||
collect/F/cont;
|
||||
collect/G/cont;
|
||||
collect/H/cont;
|
||||
collect/I/cont;
|
||||
collect/J/cont;
|
||||
collect/K/cont;
|
||||
collect/L/cont;
|
||||
collect/M/cont;
|
||||
collect/N/cont;
|
||||
collect/O/cont;
|
||||
collect/P/cont;
|
||||
collect/Q/cont;
|
||||
collect/R/cont;
|
||||
collect/S/cont;
|
||||
collect/T/cont;
|
||||
collect/U/cont;
|
||||
collect/V/cont;
|
||||
collect/W/cont;
|
||||
collect/X/cont;
|
||||
collect/Y/cont;
|
||||
collect/Z/cont;
|
||||
collect/1/cont;
|
||||
collect/2/cont;
|
||||
collect/3/cont;
|
||||
collect/4/cont;
|
||||
collect/5/cont;
|
||||
collect/6/cont;
|
||||
collect/7/cont;
|
||||
collect/8/cont;
|
||||
collect/9/cont;
|
||||
collect/0/cont;
|
||||
collect/./cont;
|
||||
collect/_/cont;
|
||||
collect/
|
||||
/out;
|
||||
skip/'/agobl;
|
||||
skip/"/agobl;
|
||||
skip/</agobl;
|
||||
skip/\//agobl;
|
||||
skip/\\/agobl;
|
||||
skip/
|
||||
/out;
|
||||
skip/./coll;
|
||||
skip/_/coll;
|
||||
skip/a/coll;
|
||||
skip/b/coll;
|
||||
skip/c/coll;
|
||||
skip/d/coll;
|
||||
skip/e/coll;
|
||||
skip/f/coll;
|
||||
skip/g/coll;
|
||||
skip/h/coll;
|
||||
skip/i/coll;
|
||||
skip/j/coll;
|
||||
skip/k/coll;
|
||||
skip/l/coll;
|
||||
skip/m/coll;
|
||||
skip/n/coll;
|
||||
skip/o/coll;
|
||||
skip/p/coll;
|
||||
skip/q/coll;
|
||||
skip/r/coll;
|
||||
skip/s/coll;
|
||||
skip/t/coll;
|
||||
skip/u/coll;
|
||||
skip/v/coll;
|
||||
skip/w/coll;
|
||||
skip/x/coll;
|
||||
skip/y/coll;
|
||||
skip/z/coll;
|
||||
skip/A/coll;
|
||||
skip/B/coll;
|
||||
skip/C/coll;
|
||||
skip/D/coll;
|
||||
skip/E/coll;
|
||||
skip/F/coll;
|
||||
skip/G/coll;
|
||||
skip/H/coll;
|
||||
skip/I/coll;
|
||||
skip/J/coll;
|
||||
skip/K/coll;
|
||||
skip/L/coll;
|
||||
skip/M/coll;
|
||||
skip/N/coll;
|
||||
skip/O/coll;
|
||||
skip/P/coll;
|
||||
skip/Q/coll;
|
||||
skip/R/coll;
|
||||
skip/S/coll;
|
||||
skip/T/coll;
|
||||
skip/U/coll;
|
||||
skip/V/coll;
|
||||
skip/W/coll;
|
||||
skip/X/coll;
|
||||
skip/Y/coll;
|
||||
skip/Z/coll;
|
||||
skip/0/sk2;
|
||||
skip/1/sk2;
|
||||
skip/2/sk2;
|
||||
skip/3/sk2;
|
||||
skip/4/sk2;
|
||||
skip/5/sk2;
|
||||
skip/6/sk2;
|
||||
skip/7/sk2;
|
||||
skip/8/sk2;
|
||||
skip/9/sk2;
|
||||
skip2/a/cont;
|
||||
skip2/b/cont;
|
||||
skip2/c/cont;
|
||||
skip2/d/cont;
|
||||
skip2/e/cont;
|
||||
skip2/f/cont;
|
||||
skip2/g/cont;
|
||||
skip2/h/cont;
|
||||
skip2/i/cont;
|
||||
skip2/j/cont;
|
||||
skip2/k/cont;
|
||||
skip2/l/cont;
|
||||
skip2/m/cont;
|
||||
skip2/n/cont;
|
||||
skip2/o/cont;
|
||||
skip2/p/cont;
|
||||
skip2/q/cont;
|
||||
skip2/r/cont;
|
||||
skip2/s/cont;
|
||||
skip2/t/cont;
|
||||
skip2/u/cont;
|
||||
skip2/v/cont;
|
||||
skip2/w/cont;
|
||||
skip2/x/cont;
|
||||
skip2/y/cont;
|
||||
skip2/z/cont;
|
||||
skip2/A/cont;
|
||||
skip2/B/cont;
|
||||
skip2/C/cont;
|
||||
skip2/D/cont;
|
||||
skip2/E/cont;
|
||||
skip2/F/cont;
|
||||
skip2/G/cont;
|
||||
skip2/H/cont;
|
||||
skip2/I/cont;
|
||||
skip2/J/cont;
|
||||
skip2/K/cont;
|
||||
skip2/L/cont;
|
||||
skip2/M/cont;
|
||||
skip2/N/cont;
|
||||
skip2/O/cont;
|
||||
skip2/P/cont;
|
||||
skip2/Q/cont;
|
||||
skip2/R/cont;
|
||||
skip2/S/cont;
|
||||
skip2/T/cont;
|
||||
skip2/U/cont;
|
||||
skip2/V/cont;
|
||||
skip2/W/cont;
|
||||
skip2/X/cont;
|
||||
skip2/Y/cont;
|
||||
skip2/Z/cont;
|
||||
skip2/0/cont;
|
||||
skip2/1/cont;
|
||||
skip2/2/cont;
|
||||
skip2/3/cont;
|
||||
skip2/4/cont;
|
||||
skip2/5/cont;
|
||||
skip2/6/cont;
|
||||
skip2/7/cont;
|
||||
skip2/8/cont;
|
||||
skip2/9/cont;
|
||||
skip2/
|
||||
/out;
|
||||
skip2/\//agobl;
|
||||
@@ -0,0 +1,217 @@
|
||||
skip
|
||||
collect save
|
||||
skip2 sk
|
||||
|
||||
cont coll save out asym agobl csym cgobl incl decl sk2 sk tab semi
|
||||
|
||||
collect/\;/semi;
|
||||
collect/_/cont;
|
||||
collect/{/incl;
|
||||
collect/}/decl;
|
||||
collect/'/cgobl;
|
||||
collect/\\/cgobl;
|
||||
collect/"/cgobl;
|
||||
collect/a/cont;
|
||||
collect/b/cont;
|
||||
collect/c/cont;
|
||||
collect/d/cont;
|
||||
collect/e/cont;
|
||||
collect/f/cont;
|
||||
collect/g/cont;
|
||||
collect/h/cont;
|
||||
collect/i/cont;
|
||||
collect/j/cont;
|
||||
collect/k/cont;
|
||||
collect/l/cont;
|
||||
collect/m/cont;
|
||||
collect/n/cont;
|
||||
collect/o/cont;
|
||||
collect/p/cont;
|
||||
collect/q/cont;
|
||||
collect/r/cont;
|
||||
collect/s/cont;
|
||||
collect/t/cont;
|
||||
collect/u/cont;
|
||||
collect/v/cont;
|
||||
collect/w/cont;
|
||||
collect/x/cont;
|
||||
collect/y/cont;
|
||||
collect/z/cont;
|
||||
collect/A/cont;
|
||||
collect/B/cont;
|
||||
collect/C/cont;
|
||||
collect/D/cont;
|
||||
collect/E/cont;
|
||||
collect/F/cont;
|
||||
collect/G/cont;
|
||||
collect/H/cont;
|
||||
collect/I/cont;
|
||||
collect/J/cont;
|
||||
collect/K/cont;
|
||||
collect/L/cont;
|
||||
collect/M/cont;
|
||||
collect/N/cont;
|
||||
collect/O/cont;
|
||||
collect/P/cont;
|
||||
collect/Q/cont;
|
||||
collect/R/cont;
|
||||
collect/S/cont;
|
||||
collect/T/cont;
|
||||
collect/U/cont;
|
||||
collect/V/cont;
|
||||
collect/W/cont;
|
||||
collect/X/cont;
|
||||
collect/Y/cont;
|
||||
collect/Z/cont;
|
||||
collect/1/cont;
|
||||
collect/2/cont;
|
||||
collect/3/cont;
|
||||
collect/4/cont;
|
||||
collect/5/cont;
|
||||
collect/6/cont;
|
||||
collect/7/cont;
|
||||
collect/8/cont;
|
||||
collect/9/cont;
|
||||
collect/0/cont;
|
||||
collect/
|
||||
/out;
|
||||
skip/\;/semi;
|
||||
skip/_/coll;
|
||||
skip/ /tab;
|
||||
skip/{/incl;
|
||||
skip/}/decl;
|
||||
skip/*/cgobl;
|
||||
skip/'/cgobl;
|
||||
skip/"/cgobl;
|
||||
skip/\\/cgobl;
|
||||
skip/
|
||||
/out;
|
||||
skip/1/sk2;
|
||||
skip/2/sk2;
|
||||
skip/3/sk2;
|
||||
skip/4/sk2;
|
||||
skip/5/sk2;
|
||||
skip/6/sk2;
|
||||
skip/7/sk2;
|
||||
skip/8/sk2;
|
||||
skip/9/sk2;
|
||||
skip/0/sk2;
|
||||
skip/a/coll;
|
||||
skip/b/coll;
|
||||
skip/c/coll;
|
||||
skip/d/coll;
|
||||
skip/e/coll;
|
||||
skip/f/coll;
|
||||
skip/g/coll;
|
||||
skip/h/coll;
|
||||
skip/i/coll;
|
||||
skip/j/coll;
|
||||
skip/k/coll;
|
||||
skip/l/coll;
|
||||
skip/m/coll;
|
||||
skip/n/coll;
|
||||
skip/o/coll;
|
||||
skip/p/coll;
|
||||
skip/q/coll;
|
||||
skip/r/coll;
|
||||
skip/s/coll;
|
||||
skip/t/coll;
|
||||
skip/u/coll;
|
||||
skip/v/coll;
|
||||
skip/w/coll;
|
||||
skip/x/coll;
|
||||
skip/y/coll;
|
||||
skip/z/coll;
|
||||
skip/A/coll;
|
||||
skip/B/coll;
|
||||
skip/C/coll;
|
||||
skip/D/coll;
|
||||
skip/E/coll;
|
||||
skip/F/coll;
|
||||
skip/G/coll;
|
||||
skip/H/coll;
|
||||
skip/I/coll;
|
||||
skip/J/coll;
|
||||
skip/K/coll;
|
||||
skip/L/coll;
|
||||
skip/M/coll;
|
||||
skip/N/coll;
|
||||
skip/O/coll;
|
||||
skip/P/coll;
|
||||
skip/Q/coll;
|
||||
skip/R/coll;
|
||||
skip/S/coll;
|
||||
skip/T/coll;
|
||||
skip/U/coll;
|
||||
skip/V/coll;
|
||||
skip/W/coll;
|
||||
skip/X/coll;
|
||||
skip/Y/coll;
|
||||
skip/Z/coll;
|
||||
skip2/{/incl;
|
||||
skip2/}/decl;
|
||||
skip2/a/cont;
|
||||
skip2/b/cont;
|
||||
skip2/c/cont;
|
||||
skip2/d/cont;
|
||||
skip2/e/cont;
|
||||
skip2/f/cont;
|
||||
skip2/g/cont;
|
||||
skip2/h/cont;
|
||||
skip2/i/cont;
|
||||
skip2/j/cont;
|
||||
skip2/k/cont;
|
||||
skip2/l/cont;
|
||||
skip2/m/cont;
|
||||
skip2/n/cont;
|
||||
skip2/o/cont;
|
||||
skip2/p/cont;
|
||||
skip2/q/cont;
|
||||
skip2/r/cont;
|
||||
skip2/s/cont;
|
||||
skip2/t/cont;
|
||||
skip2/u/cont;
|
||||
skip2/v/cont;
|
||||
skip2/w/cont;
|
||||
skip2/x/cont;
|
||||
skip2/y/cont;
|
||||
skip2/z/cont;
|
||||
skip2/A/cont;
|
||||
skip2/B/cont;
|
||||
skip2/C/cont;
|
||||
skip2/D/cont;
|
||||
skip2/E/cont;
|
||||
skip2/F/cont;
|
||||
skip2/G/cont;
|
||||
skip2/H/cont;
|
||||
skip2/I/cont;
|
||||
skip2/J/cont;
|
||||
skip2/K/cont;
|
||||
skip2/L/cont;
|
||||
skip2/M/cont;
|
||||
skip2/N/cont;
|
||||
skip2/O/cont;
|
||||
skip2/P/cont;
|
||||
skip2/Q/cont;
|
||||
skip2/R/cont;
|
||||
skip2/S/cont;
|
||||
skip2/T/cont;
|
||||
skip2/U/cont;
|
||||
skip2/V/cont;
|
||||
skip2/W/cont;
|
||||
skip2/X/cont;
|
||||
skip2/Y/cont;
|
||||
skip2/Z/cont;
|
||||
skip2/1/cont;
|
||||
skip2/2/cont;
|
||||
skip2/3/cont;
|
||||
skip2/4/cont;
|
||||
skip2/5/cont;
|
||||
skip2/6/cont;
|
||||
skip2/7/cont;
|
||||
skip2/8/cont;
|
||||
skip2/9/cont;
|
||||
skip2/0/cont;
|
||||
skip2/./cont;
|
||||
skip2/
|
||||
/out;
|
||||
@@ -0,0 +1,169 @@
|
||||
skip
|
||||
collect save
|
||||
skip2
|
||||
|
||||
cont coll save out egobl hyphen pno
|
||||
|
||||
skip//pno;
|
||||
skip/
|
||||
/out;
|
||||
skip/a/coll;
|
||||
skip/b/coll;
|
||||
skip/c/coll;
|
||||
skip/d/coll;
|
||||
skip/e/coll;
|
||||
skip/f/coll;
|
||||
skip/g/coll;
|
||||
skip/h/coll;
|
||||
skip/i/coll;
|
||||
skip/j/coll;
|
||||
skip/k/coll;
|
||||
skip/l/coll;
|
||||
skip/m/coll;
|
||||
skip/n/coll;
|
||||
skip/o/coll;
|
||||
skip/p/coll;
|
||||
skip/q/coll;
|
||||
skip/r/coll;
|
||||
skip/s/coll;
|
||||
skip/t/coll;
|
||||
skip/u/coll;
|
||||
skip/v/coll;
|
||||
skip/w/coll;
|
||||
skip/x/coll;
|
||||
skip/y/coll;
|
||||
skip/z/coll;
|
||||
skip/A/coll;
|
||||
skip/B/coll;
|
||||
skip/C/coll;
|
||||
skip/D/coll;
|
||||
skip/E/coll;
|
||||
skip/F/coll;
|
||||
skip/G/coll;
|
||||
skip/H/coll;
|
||||
skip/I/coll;
|
||||
skip/J/coll;
|
||||
skip/K/coll;
|
||||
skip/L/coll;
|
||||
skip/M/coll;
|
||||
skip/N/coll;
|
||||
skip/O/coll;
|
||||
skip/P/coll;
|
||||
skip/Q/coll;
|
||||
skip/R/coll;
|
||||
skip/S/coll;
|
||||
skip/T/coll;
|
||||
skip/U/coll;
|
||||
skip/V/coll;
|
||||
skip/W/coll;
|
||||
skip/X/coll;
|
||||
skip/Y/coll;
|
||||
skip/Z/coll;
|
||||
collect/'/cont;
|
||||
collect/-/hyphen;
|
||||
collect/
|
||||
/out;
|
||||
collect/a/cont;
|
||||
collect/b/cont;
|
||||
collect/c/cont;
|
||||
collect/d/cont;
|
||||
collect/e/cont;
|
||||
collect/f/cont;
|
||||
collect/g/cont;
|
||||
collect/h/cont;
|
||||
collect/i/cont;
|
||||
collect/j/cont;
|
||||
collect/k/cont;
|
||||
collect/l/cont;
|
||||
collect/m/cont;
|
||||
collect/n/cont;
|
||||
collect/o/cont;
|
||||
collect/p/cont;
|
||||
collect/q/cont;
|
||||
collect/r/cont;
|
||||
collect/s/cont;
|
||||
collect/t/cont;
|
||||
collect/u/cont;
|
||||
collect/v/cont;
|
||||
collect/w/cont;
|
||||
collect/x/cont;
|
||||
collect/y/cont;
|
||||
collect/z/cont;
|
||||
collect/A/cont;
|
||||
collect/B/cont;
|
||||
collect/C/cont;
|
||||
collect/D/cont;
|
||||
collect/E/cont;
|
||||
collect/F/cont;
|
||||
collect/G/cont;
|
||||
collect/H/cont;
|
||||
collect/I/cont;
|
||||
collect/J/cont;
|
||||
collect/K/cont;
|
||||
collect/L/cont;
|
||||
collect/M/cont;
|
||||
collect/N/cont;
|
||||
collect/O/cont;
|
||||
collect/P/cont;
|
||||
collect/Q/cont;
|
||||
collect/R/cont;
|
||||
collect/S/cont;
|
||||
collect/T/cont;
|
||||
collect/U/cont;
|
||||
collect/V/cont;
|
||||
collect/W/cont;
|
||||
collect/X/cont;
|
||||
collect/Y/cont;
|
||||
collect/Z/cont;
|
||||
skip2/a/coll;
|
||||
skip2/b/coll;
|
||||
skip2/c/coll;
|
||||
skip2/d/coll;
|
||||
skip2/e/coll;
|
||||
skip2/f/coll;
|
||||
skip2/g/coll;
|
||||
skip2/h/coll;
|
||||
skip2/i/coll;
|
||||
skip2/j/coll;
|
||||
skip2/k/coll;
|
||||
skip2/l/coll;
|
||||
skip2/m/coll;
|
||||
skip2/n/coll;
|
||||
skip2/o/coll;
|
||||
skip2/p/coll;
|
||||
skip2/q/coll;
|
||||
skip2/r/coll;
|
||||
skip2/s/coll;
|
||||
skip2/t/coll;
|
||||
skip2/u/coll;
|
||||
skip2/v/coll;
|
||||
skip2/w/coll;
|
||||
skip2/x/coll;
|
||||
skip2/y/coll;
|
||||
skip2/z/coll;
|
||||
skip2/A/coll;
|
||||
skip2/B/coll;
|
||||
skip2/C/coll;
|
||||
skip2/D/coll;
|
||||
skip2/E/coll;
|
||||
skip2/F/coll;
|
||||
skip2/G/coll;
|
||||
skip2/H/coll;
|
||||
skip2/I/coll;
|
||||
skip2/J/coll;
|
||||
skip2/K/coll;
|
||||
skip2/L/coll;
|
||||
skip2/M/coll;
|
||||
skip2/N/coll;
|
||||
skip2/O/coll;
|
||||
skip2/P/coll;
|
||||
skip2/Q/coll;
|
||||
skip2/R/coll;
|
||||
skip2/S/coll;
|
||||
skip2/T/coll;
|
||||
skip2/U/coll;
|
||||
skip2/V/coll;
|
||||
skip2/W/coll;
|
||||
skip2/X/coll;
|
||||
skip2/Y/coll;
|
||||
skip2/Z/coll;
|
||||
@@ -0,0 +1,237 @@
|
||||
# include "../mcons.h"
|
||||
struct {
|
||||
int cl[NUMC];
|
||||
}tab[NUMS];
|
||||
char state[NUMS][SIZS];
|
||||
char class[NUMC][SIZC];
|
||||
char act[NUMA][SIZA];
|
||||
char def[NUMS][SIZA];
|
||||
char temp[SIZA];
|
||||
|
||||
char *st[NUMS];
|
||||
char *df[NUMS];
|
||||
char *cl[NUMC];
|
||||
char *ac[NUMA];
|
||||
|
||||
int t1;
|
||||
int t2;
|
||||
|
||||
|
||||
main(argc,argv) char **argv;
|
||||
{
|
||||
|
||||
extern fin;
|
||||
char fl,nlfl,c,bfl,fo,brk;
|
||||
int cs,ca,cc,i,j,cd;
|
||||
|
||||
if(argc != 3) {
|
||||
printf("Usage: mtab input output\n");
|
||||
exit();
|
||||
}
|
||||
|
||||
if((fo = creat(argv[2],0644)) < 0) {
|
||||
printf("Output file.\n");
|
||||
exit();
|
||||
}
|
||||
if((fin = open(argv[1],0)) < 0) {
|
||||
printf("Input file.\n");
|
||||
exit();
|
||||
}
|
||||
|
||||
|
||||
|
||||
nlfl = 1;
|
||||
i = -1;
|
||||
while(brk = rword()) {
|
||||
switch (brk) {
|
||||
case '\n':
|
||||
if(nlfl) {
|
||||
move(temp,state[++i]);
|
||||
st[i] = &state[i];
|
||||
} else {
|
||||
move(temp,def[i]);
|
||||
df[i] = &def[i];
|
||||
nlfl = 1;
|
||||
}
|
||||
continue;
|
||||
case ' ':
|
||||
if(nlfl) {
|
||||
move(temp,state[++i]);
|
||||
st[i] = &state[i];
|
||||
nlfl = 0;
|
||||
} else {
|
||||
error(7);
|
||||
}
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
i = 128;
|
||||
while(--i) {
|
||||
class[i][0] = i;
|
||||
class[i][1] = '\0';
|
||||
cl[i] = &class[i];
|
||||
}
|
||||
cl[0] = &class[0];
|
||||
|
||||
|
||||
bfl = nlfl = 0;
|
||||
t1 = 0;
|
||||
t2 = -1;
|
||||
while(c = getchar()) {
|
||||
|
||||
switch(c) {
|
||||
|
||||
default:
|
||||
if(t1 >= NUMA) error(4);
|
||||
bfl = nlfl = 0;
|
||||
act[t1][++t2<8?t2:7] = c;
|
||||
continue;
|
||||
|
||||
case '\n':
|
||||
if(nlfl) break;
|
||||
nlfl = 1;
|
||||
|
||||
case ' ':
|
||||
if(bfl) continue;
|
||||
bfl = 1;
|
||||
act[t1][++t2<8?t2:7] = '\0';
|
||||
ac[t1] = &act[t1];
|
||||
t1++;
|
||||
t2 = -1;
|
||||
continue;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(c == '\0') exit();
|
||||
|
||||
i = -1;
|
||||
while(++i < NUMS) {
|
||||
if(df[i]) {
|
||||
cd = find(ac,df[i],NUMA);
|
||||
j = -1;
|
||||
while(++j < NUMC)
|
||||
tab[i].cl[j] = cd;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
fl = 0;
|
||||
i = -1;
|
||||
while(c = getchar()) {
|
||||
|
||||
switch(c) {
|
||||
|
||||
case '\\':
|
||||
temp[++i] = getchar();
|
||||
continue;
|
||||
|
||||
case '\n':
|
||||
if(fl != 1) continue;
|
||||
|
||||
default:
|
||||
temp[++i] = c;
|
||||
continue;
|
||||
|
||||
case '/':
|
||||
temp[++i] = '\0';
|
||||
i = -1;
|
||||
switch(fl) {
|
||||
case 0:
|
||||
cs = find(st,temp,NUMS);
|
||||
fl = 1;
|
||||
continue;
|
||||
|
||||
case 1:
|
||||
cc = find(cl,temp,NUMC);
|
||||
fl = 2;
|
||||
continue;
|
||||
|
||||
default:
|
||||
error(1);
|
||||
|
||||
}
|
||||
|
||||
case ';':
|
||||
|
||||
if(fl != 2) error(2);
|
||||
|
||||
temp[++i] = '\0';
|
||||
i = -1;
|
||||
ca = find(ac,temp,NUMA);
|
||||
|
||||
/*printf("%o %o %o\n",cs,cc,ca); /*DEBUG*/
|
||||
tab[cs].cl[cc] = ca;
|
||||
|
||||
fl = 0;
|
||||
continue;
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
i = -1;
|
||||
while(++i < NUMS)
|
||||
write(fo,tab[i].cl,256);
|
||||
|
||||
}
|
||||
|
||||
error(a)
|
||||
{
|
||||
|
||||
printf("Error %d\n",a);
|
||||
exit();
|
||||
|
||||
}
|
||||
|
||||
find(a,b,c) char (*a[])[];
|
||||
char b[];
|
||||
int c;
|
||||
{
|
||||
int i,j;
|
||||
|
||||
/* printf("%s\n",b); /*DEBUG*/
|
||||
i = -1;
|
||||
while(++i < c) {
|
||||
/* printf(" %s\n",a[i]); /*DEBUG*/
|
||||
j = 0;
|
||||
/* printf("b = %c\ta = %c\n",b[0],(*a[i])[0]); /*DEBUG*/
|
||||
while(b[j] == (*a[i])[j]) {
|
||||
if(b[j] == '\0') goto found;
|
||||
j++;
|
||||
}
|
||||
}
|
||||
found:
|
||||
return(i);
|
||||
}
|
||||
|
||||
rword() {
|
||||
|
||||
char c;
|
||||
int ct;
|
||||
|
||||
ct = -1;
|
||||
while(c = getchar()) {
|
||||
switch(c) {
|
||||
|
||||
default:
|
||||
temp[++ct] = c;
|
||||
continue;
|
||||
|
||||
case '\n':
|
||||
if(ct == -1) return('\0');
|
||||
case ' ':
|
||||
temp[++ct] = '\0';
|
||||
return(c);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
move(a,b) char *a;
|
||||
char *b;
|
||||
{
|
||||
while((*b++ = *a++) != '\0');
|
||||
return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user