         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
				.machine ppc
				.section	".text"
		.Ltext0:
				.align 2
				.globl main
		main:
		.LFB185:
		.LVL0:
				stwu 1,-16(1)
				mflr 0
				stw 0,20(1)
    2   %integer btrue, bfalse, instring
				bl _imp_initialise
		.LVL1:
		.L2:
		.L3:
		.L4:
		.L5:
		.LBB8:
		.LBB9:
				li 3,0
				bl exit
		.LVL2:
		.LBE9:
		.LBE8:
		.LFE185:
		.Letext0:
    3   %integer ch, inconst, ptr, obp, res
    4   %integerarray sc('A':'Z')
    5   %bytearray outbuf(0:1000)
    6
    7   %routine getline(%integer ptr)
    8   %end
?PTR unused
    9   %integerfn next non sp(%integer sym)
   10     %result = 'x'
   11   %end
?SYM unused
   12   %switch bip(1:2000)
   13
   14 bip(1013): ! Alias.
   15    ch = next non sp(inconst)
   16    ptr = ptr + 1
   17    %if ch # '"' %then res = bfalse %and -> inc
   18    outbuf(obp) = ' '
   19    obp = obp + 1
   20    outbuf(obp) = '"'
   21    obp = obp + 1
   22    %cycle
   23       %if sc(ptr) = '"' %start
   24          outbuf(obp) = '"' ! instring
   25          %if sc(ptr + 1) # '"' %then %exit
   26          outbuf(obp + 1) = '"' ! instring
   27          obp = obp + 2
   28          ptr = ptr + 2
   29       %finish %else %start
   30          ch = sc(ptr)
   31          outbuf(obp) = ch ! instring
   32          obp = obp + 1
   33          ptr = ptr + 1
   34          getline(ptr) %if ch = nl
   35       %finish
   36    %repeat
   37    ptr = ptr + 1
   38    obp = obp + 1
   39 inc:
   40 %endofprogram
?BTRUE unused
   36 Statements compiled
