comparison src/compiler.sig @ 201:f2cac0dba9bf

Consolidating compiler phase interface and adding timing
author Adam Chlipala <adamc@hcoop.net>
date Tue, 12 Aug 2008 14:40:07 -0400
parents 8a70e2919e86
children af5bd54cbbd7
comparison
equal deleted inserted replaced
200:5dbba661deab 201:f2cac0dba9bf
28 (* Laconic/Web main compiler interface *) 28 (* Laconic/Web main compiler interface *)
29 29
30 signature COMPILER = sig 30 signature COMPILER = sig
31 31
32 type job = string list 32 type job = string list
33 val compile : job -> unit 33 (*val compile : job -> unit*)
34 val compileC : {cname : string, oname : string, ename : string} -> unit 34 val compileC : {cname : string, oname : string, ename : string} -> unit
35 35
36 val parseLig : string -> Source.sgn_item list option 36 type ('src, 'dst) phase
37 val testLig : string -> unit 37 type ('src, 'dst) transform
38 38
39 val parseLac : string -> Source.file option 39 val transform : ('src, 'dst) phase -> string -> ('src, 'dst) transform
40 val testLac : string -> unit 40 val o : ('a, 'b) transform * ('b, 'c) transform -> ('a, 'c) transform
41 41
42 val parse : job -> Source.file option 42 val run : ('src, 'dst) transform -> 'src -> 'dst option
43 val elaborate : job -> Elab.file option 43 val runPrint : ('src, 'dst) transform -> 'src -> unit
44 val explify : job -> Expl.file option 44 val time : ('src, 'dst) transform -> 'src -> unit
45 val corify : job -> Core.file option 45 val timePrint : ('src, 'dst) transform -> 'src -> unit
46 val shake' : job -> Core.file option
47 val tag : job -> Core.file option
48 val reduce : job -> Core.file option
49 val specialize : job -> Core.file option
50 val shake : job -> Core.file option
51 val monoize : job -> Mono.file option
52 val mono_opt' : job -> Mono.file option
53 val untangle : job -> Mono.file option
54 val mono_reduce : job -> Mono.file option
55 val mono_shake : job -> Mono.file option
56 val mono_opt : job -> Mono.file option
57 val cjrize : job -> Cjr.file option
58 46
59 val testParse : job -> unit 47 val parseLac : (string, Source.file) phase
60 val testElaborate : job -> unit 48 val parseLig : (string, Source.sgn_item list) phase
61 val testExplify : job -> unit 49
62 val testCorify : job -> unit 50 val parse : (job, Source.file) phase
63 val testShake' : job -> unit 51 val elaborate : (Source.file, Elab.file) phase
64 val testTag : job -> unit 52 val explify : (Elab.file, Expl.file) phase
65 val testReduce : job -> unit 53 val corify : (Expl.file, Core.file) phase
66 val testSpecialize : job -> unit 54
67 val testShake : job -> unit 55 val toParse : (job, Source.file) transform
68 val testMonoize : job -> unit 56 val toElaborate : (job, Elab.file) transform
69 val testMono_opt' : job -> unit 57 val toExplify : (job, Expl.file) transform
70 val testUntangle : job -> unit 58 val toCorify : (job, Core.file) transform
71 val testMono_reduce : job -> unit
72 val testMono_shake : job -> unit
73 val testMono_opt : job -> unit
74 val testCjrize : job -> unit
75 59
76 end 60 end