/*********************************************************/ /* */ /* PISTOL-Portably Implemented Stack Oriented Language */ /* Version 1.3 */ /* (C) 1982 by Ernest E. Bergmann */ /* Physics, Building #16 */ /* Lehigh Univerisity */ /* Bethlehem, Pa. 18015 */ /* */ /* Permission is hereby granted for all reproduction and */ /* distribution of this material provided this notice is */ /* is included. */ /* */ /*********************************************************/ /* third module, February, 1982 */ #include "bdscio.h" #include "pistol.h" char *slit() /* emplaces string lit.,returns ^ to its start */ {char i,*start; /*Feb 13: elim. Pc2,len*/ Pc=start=ram[-4].pc; Pc++; *start=*ram[-4].pc -1; Pc++; ram[-4].pc++; for(i=*start; i ; Pc++,ram[-4].pc++,i--) *ram[-4].pc=*Pc ; return(start); } char *longstring() /* Feb 13 eliminate Pc */ {char len,*start; if(*ram[-18].pc != '"') abort(); Pc2=start=ram[-4].pc; Pc2++; len=0; ram[-15].pc=ram[-18].pc+1; while(*ram[-15].pc != NEWLINE && *ram[-15].pc != '"') {len++; *Pc2=*ram[-15].pc; Pc2++; nextch(); } nextch(); *start=len; ram[-4].pc=Pc2; return(start); } int digit(d) char d; {if(d<='9') return(d-'0'); if(d<'A') return(-1); if(d<='Z') return(10-'A'+d); return(-1); } char convert(ptkn,base,Pval) char *ptkn,base; int *Pval; {char *tend; int val,d; val=0; ram[-10].in=1; tend=*ptkn + ptkn +1; ptkn++ ; if(*ptkn=='+') ptkn++; else if(*ptkn=='-'){ptkn++; ram[-10].in=-1;} d=digit(*ptkn); while((d>-1)&&(ptkn