|
@@ -1,3 +1,16 @@
|
|
|
|
|
+(** Output any intermediate representation to [stdout] or [stderr]. *)
|
|
|
|
|
+
|
|
|
|
|
+(** The printing phase takes as input any intermediate representation, and
|
|
|
|
|
+ prints its stringification. The input of the phase is also its output.
|
|
|
|
|
+
|
|
|
|
|
+ Since node stringification is implemented by {!Stringify}, the phase simply
|
|
|
|
|
+ calls {!Stringify.node2str} for [Ast] inputs. Stringification of assembly
|
|
|
|
|
+ instructions is implemented in the module itself: {!print_assembly}.
|
|
|
|
|
+
|
|
|
|
|
+ The output starts and ends with a separation line ({!Util.hline}). *)
|
|
|
|
|
+
|
|
|
|
|
+(** Print assembly instructions to the given file pointer. *)
|
|
|
val print_assembly : out_channel -> Types.instr list -> unit
|
|
val print_assembly : out_channel -> Types.instr list -> unit
|
|
|
|
|
|
|
|
|
|
+(** Main phase function, called by {!Main}. *)
|
|
|
val phase : Main.phase_func
|
|
val phase : Main.phase_func
|