         Edinburgh IMP77 Compiler - Version 8.4

    1  %externalintegerfn main
    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
