         Edinburgh IMP77 Compiler - Version 8.4
    1 %begin
		.Ltext0:
				.align	2
				.global	main
		main:
		.LFB185:
		.LVL0:
				stp	x29, x30, [sp, -16]!
				add	x29, sp, 0
    2   ! Complete list of formal parameter types:
				bl	_imp_initialise
		.LVL1:
		.LBB4:
		.LBB5:
				mov	w0, 0
				bl	exit
		.LVL2:
		.LBE5:
		.LBE4:
		.LFE185:
		.Letext0:
    3
    4   %recordformat record fm ( %integer field1, %real field2, %string (255) field3 )
    5   %comment %recordformat record fm ( %integer field1, %real field2, %string (255) field3 )
    6
    7   %routine fancy
    8     %comment   %routine fancy
    9   %end
   10
   11   %routine fancy1(%integer param, p2, p3)
   12     %comment   %routine fancy1(%integer param, p2, p3)
   13   %end
?P3 unused
?P2 unused
?PARAM unused
   14
   15   %routine fancy2(%real param, p2, p3)
   16     %comment   %routine fancy2(%real param, p2, p3)
   17   %end
?P3 unused
?P2 unused
?PARAM unused
   18
   19   %routine fancy3(%string(255) param, p2, p3)
   20     %comment   %routine fancy3(%string(255) param, p2, p3)
   21   %end
?P3 unused
?P2 unused
?PARAM unused
   22
   23   %routine fancy4(%integer %name param, p2, p3)
   24     %comment   %routine fancy4(%integer %name param, p2, p3)
   25   %end
?P3 unused
?P2 unused
?PARAM unused
   26
   27   %routine fancy5(%real %name param, p2, p3)
   28     %comment   %routine fancy5(%real %name param, p2, p3)
   29   %end
?P3 unused
?P2 unused
?PARAM unused
   30
   31   %routine fancy6(%string(255)%name param, p2, p3)
   32     %comment   %routine fancy6(%string(255)%name param, p2, p3)
   33   %end
?P3 unused
?P2 unused
?PARAM unused
   34
   35   %routine fancy7(%integer %array %name param, p2, p3)
   36     %comment   %routine fancy7(%integer %array %name param, p2, p3)
   37   %end
?P3 unused
?P2 unused
?PARAM unused
   38
   39   %routine fancy8(%real %array %name param, p2, p3)
   40     %comment   %routine fancy8(%real %array %name param, p2, p3)
   41   %end
?P3 unused
?P2 unused
?PARAM unused
   42
   43   %routine fancy9(%string(255)%array %name param, p2, p3)
   44     %comment   %routine fancy9(%string(255)%array %name param, p2, p3)
   45   %end
?P3 unused
?P2 unused
?PARAM unused
   46
   47   %routine fancy10A(%integer %fn param)
   48     ! name list silently accepted here. Should be an error. Not output in C however.  Add to rejection tests later.
   49     %comment   %routine fancy10A(%integer %fn param)
   50   %end
?PARAM unused
   51
   52   %routine fancy10B(%integer %fn param(%routine subparam(%realfn subsubparam(%real subsubsubparam))))
   53     %comment   %routine fancy10B(%integer %fn param(%routine subparam(%realfn subsubparam(%real subsubsubparam))))
   54   %end
?PARAM unused
   55
   56   %routine fancy11(%real %fn param)
   57     %comment   %routine fancy11(%real %fn param)
   58   %end
?PARAM unused
   59
   60   %routine fancy12(%string(255)%fn param)
   61     %comment   %routine fancy12(%string(255)%fn param)
   62   %end
?PARAM unused
   63
   64   %routine fancy13(%integer %function param)
   65     %comment   %routine fancy13(%integer %function param)
   66   %end
?PARAM unused
   67
   68   %routine fancy14(%real %function param)
   69     %comment   %routine fancy14(%real %function param)
   70   %end
?PARAM unused
   71
   72   %routine fancy15(%string(255)%function param)
   73     %comment   %routine fancy15(%string(255)%function param)
   74   %end
?PARAM unused
   75
   76   %routine fancy16(%integer %map param)
   77     %comment   %routine fancy16(%integer %map param)
   78   %end
?PARAM unused
   79
   80   %routine fancy17(%real %map param)
   81     %comment   %routine fancy17(%real %map param)
   82   %end
?PARAM unused
   83
   84   %routine fancy18(%string(255)%map param)
   85     %comment   %routine fancy18(%string(255)%map param)
   86   %end
?PARAM unused
   87
   88   %routine fancy19(%integer %name %array %name param, p2, p3)
   89     %comment   %routine fancy19(%integer %name %array %name param, p2, p3)
   90   %end
?P3 unused
?P2 unused
?PARAM unused
   91
   92   %routine fancy20(%real %name %array %name param, p2, p3)
   93     %comment   %routine fancy20(%real %name %array %name param, p2, p3)
   94   %end
?P3 unused
?P2 unused
?PARAM unused
   95
   96   %routine fancy21(%string(255) %name %array %name param, p2, p3)
   97     %comment   %routine fancy21(%string(255) %name %array %name param, p2, p3)
   98   %end
?P3 unused
?P2 unused
?PARAM unused
   99
  100   %routine fancy22(%record(record fm) param, p2, p3)
  101     %comment   %routine fancy22(%record(record fm) param, p2, p3)
  102   %end
?P3 unused
?P2 unused
?PARAM unused
  103
  104   %routine fancy23(%record(record fm)%name param, p2, p3)
  105     %comment   %routine fancy23(%record(record fm)%name param, p2, p3)
  106   %end
?P3 unused
?P2 unused
?PARAM unused
  107
  108   %routine fancy24(%record(record fm)%array %name param, p2, p3)
  109     %comment   %routine fancy24(%record(record fm)%array %name param, p2, p3)
  110   %end
?P3 unused
?P2 unused
?PARAM unused
  111
  112   %routine fancy25(%record(record fm) %name %array %name param, p2, p3)
  113     %comment   %routine fancy25(%record(record fm) %name %array %name param, p2, p3)
  114   %end
?P3 unused
?P2 unused
?PARAM unused
  115
  116   %routine fancy26(%record(record fm)%fn param)
  117     %comment   %routine fancy26(%record(record fm)%fn param)
  118   %end
?PARAM unused
  119
  120   %routine fancy27(%record(record fm)%function param)
  121     %comment   %routine fancy27(%record(record fm)%function param)
  122   %end
?PARAM unused
  123
  124   %routine fancy28(%record(record fm)%map param)
  125     %comment   %routine fancy28(%record(record fm)%map param)
  126   %end
?PARAM unused
  127
  128   %routine fancy29(%routine param)
  129     %comment   %routine fancy29(%routine param)
  130   %end
?PARAM unused
  131
  132   %routine fancy30(%predicate param)
  133     %comment   %routine fancy30(%predicate param)
  134   %end
?PARAM unused
  135
  136   %routine fancy31(%name param)
  137     %comment   %routine fancy31(%name param)
  138   %end
?PARAM unused
  139
  140   %routine fancy32(%name param1, param2, param3)
  141     %comment   %routine fancy32(%name param1, param2, param3)
  142   %end
?PARAM3 unused
?PARAM2 unused
?PARAM1 unused
  143
  144 %endofprogram
?FANCY32 unused
?FANCY31 unused
?FANCY30 unused
?FANCY29 unused
?FANCY28 unused
?FANCY27 unused
?FANCY26 unused
?FANCY25 unused
?FANCY24 unused
?FANCY23 unused
?FANCY22 unused
?FANCY21 unused
?FANCY20 unused
?FANCY19 unused
?FANCY18 unused
?FANCY17 unused
?FANCY16 unused
?FANCY15 unused
?FANCY14 unused
?FANCY13 unused
?FANCY12 unused
?FANCY11 unused
?FANCY10B unused
?FANCY10A unused
?FANCY9 unused
?FANCY8 unused
?FANCY7 unused
?FANCY6 unused
?FANCY5 unused
?FANCY4 unused
?FANCY3 unused
?FANCY2 unused
?FANCY1 unused
?FANCY unused
   71 Statements compiled
