         Edinburgh IMP77 Compiler - Version 8.4
    1 %externalintegerfn main
				NO_APP
		.Ltext0:
				.align	2
				.globl	MAIN
		MAIN:
		.LFB185:
		 		link.w %fp,#0
		.L2:
		.L3:
		.LVL0:
		 		jra .L2
		.LFE185:
		.Letext0:
    2 %string (255) a, s
    3 %integer i, j, k, l;
    4 %integername p, q
    5   i = 20; j = 25; k = 21; l = 27;
    6   p == j; q == l;
    7   %cycle
    8     i = j; p = q
    9   %repeat %until k=3 %or (i=p %and l=1)
   10   %begin
   11 !   %integerarray ia1(0 /* crashes if i */ :j)
   12     %integerarray ia1(0:l)
   13
   14     select input(0)
   15     select output(0)
   16     s = "1+1+1+1+1+1+1+1+1"
   17     %while s -> a.("+").s %cycle
   18        readch(i)
   19        %exit %if i < 0
   20        print symbol(i)
   21     %repeat
   22
   23     %cycle
   24        %exit %if i < 0
   25        print symbol(i)
   26     %repeat %until %not s -> a.("+").s
   27
   28     %for i = 0,1,10 %cycle
?Non-local
   29        %exit %if i < 0
   30        print symbol(i)
   31     %repeat
   32
   33     i = ia1(24)
   34   %end
   35   %stop
   36 %end
   37
   38 %endoffile
   37 Statements compiled
