         Edinburgh IMP77 Compiler - Version 8.4
    1 %externalintegerfn main
				.section .mdebug.abi32
				.previous
				.nan	legacy
				.module	fp=xx
				.module	nooddspreg
				.abicalls
		$Ltext0:
				.align	2
				.globl	MAIN
				LFB185 = .
				.set	nomips16
				.set	nomicromips
				.ent	MAIN
		MAIN:
				.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0
				.mask	0x00000000,0
				.fmask	0x00000000,0
				.set	noreorder
				.set	nomacro
		$L2:
				L3 = .
				LVL0 = .
				.option	pic0
				b	$L2
				nop
				.option	pic2
				.set	macro
				.set	reorder
				.end	MAIN
		$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
