#include <perms.h>
// Edinburgh IMP77 Compiler - Version 8.4
//
// 1 %begin
int main(int argc, char **argv) { /*%begin*/
_imp_initialise(argc, argv);
// 2 %routine read sym
void READSYM(void) {
// 3 %end
return;
} /* end of READSYM */
// 4 %integer bp
int BP;
// 5 %integer sym, symtype
int SYM;
int SYMTYPE;
// 6 %byteintegerarray buff(0:255)
unsigned char BUFF[256];
struct _imp_dv BUFF_dv = {BUFF, sizeof(unsigned char) /*, dims, <bounds> */};
// 7
// 8 %CYCLE
L_0001:;
// 9 bp=bp+1 %AND buff(bp)=sym
BP = BP + 1;
BUFF[BP] = SYM;
// 10 read sym
READSYM();
// 11 %EXIT %IF symtype >= 0; !pull in letters and digits
if (SYMTYPE < 0) goto L_0002;
goto L_0003;
L_0002:;
// 12 %REPEAT
goto L_0001;
L_0003:;
// 13
// 14 ! for (;;) {
// 15 ! { BP = BP + 1; BUFF[BP] = SYM; }
// 16 ! READSYM();
// 17 ! if (SYMTYPE >= 0) break;
// 18 ! }
// 19
// 20 %endofprogram
_imp_stop(0);
return 0;
end_0:;
}