functor TEST( structure P6 : sig structure Code: CodeSig datatype Stage = Stage1 | Stage2 | Stage3 | Stage4 | Stage5 | Stage6a | Stage6b val printCode : Code.Code -> string val readCode : string -> Code.Code end) = struct local val testDir = "/home/mulgara/year2/examples/CS201/ml/Test/" fun compile f = PolyML.use( testDir ^ f ) in open P6 fun projtest (s :: ss) = ( case s of Stage1 => compile "Stage1" | Stage2 => compile "Stage2" | Stage3 => compile "Stage3" | Stage4 => compile "Stage4" | Stage5 => compile "Stage5" | Stage6a => compile "Stage6a" | Stage6b => compile "Stage6b" ; projtest ss ) | projtest [] = () fun test f s = let fun message m = output(std_out, "\n" ^ m ^ "\n") val source = readCode s val result = f source in message "Testing using code from file"; message s; message "Code from file is"; message (printCode source); message "Code after \"optimisation\" is"; message (printCode result); message "Test completed" end end end;