mn (12/16/82)
Subject: sc on an 11/70 I had the problem refered to with James Gosling's sc program on an 11/70. The problem is simply that James didn't consider that the program might be run on a 16 bit machine. The fix is really simple I'll try to outline all the changes necessary, I'm not really sure if I can remember everyone of them. I didn't save the orginal source after I got it working. File gram.y: OLD aprox line 14 %union { long ival; double fval; struct ent *ent; struct enode *enode; char *sval; } NEW %union { ! int ival; ! long lval; double fval; struct ent *ent; struct enode *enode; char *sval; } OLD aprox line 23 %type <enode> e term %type <ent> var %token <sval> STRING %token <ival> NUMBER NEW %type <enode> e term %type <ent> var %token <sval> STRING !%token <lval> NUMBER File lex.c OLD aprox line 65 } else { ret = NUMBER; yylval.ival = v; NEW } else { ret = NUMBER; ! yylval.lval = v; The result was that row and col (and a few others) were longs in the output of yacc (y.tab.c), and the 'C' code routines were expecting int's. Hope this is of some help to someone out there. Mark Nettleingham ll1!mn