OSDN Git Service

add serializer skelton
authormzp <mzpppp@gmail.com>
Fri, 19 Feb 2010 00:35:26 +0000 (09:35 +0900)
committermzp <mzpppp@gmail.com>
Fri, 19 Feb 2010 00:35:26 +0000 (09:35 +0900)
debugger/OMakefile
debugger/serialize.ml [new file with mode: 0644]
debugger/serialize.mli [new file with mode: 0644]
debugger/serializeTest.ml [new file with mode: 0644]

index 62b1a65..a46b1c0 100644 (file)
@@ -6,6 +6,8 @@ OCAMLPACKS[] =
 
 FILES[] =
        socket
+       packet
+       serialize
 
 UseCamlp4(pa_openin pa_oo pa_field pa_monad)
 PROGRAM=../debugger
@@ -22,6 +24,7 @@ OCAMLOPTLINK= ocamlopt
 OUnitTest(socket, socket)
 OUnitTest(packet, packet)
 OUnitTest(writer, writer)
+OUnitTest(serialize, serialize writer)
 
 # phony
 .PHONY: clean
diff --git a/debugger/serialize.ml b/debugger/serialize.ml
new file mode 100644 (file)
index 0000000..4ea9b97
--- /dev/null
@@ -0,0 +1,16 @@
+open Base
+
+module StrMonoid = struct
+  type t = string
+  let mempty = ""
+  let mappend = (^)
+end
+
+module M = Writer.Make(StrMonoid)
+
+
+let db _ = assert false
+let dw _ = assert false
+let dd _ = assert false
+let sz _ = assert false
+
diff --git a/debugger/serialize.mli b/debugger/serialize.mli
new file mode 100644 (file)
index 0000000..e129ba8
--- /dev/null
@@ -0,0 +1,12 @@
+module M : sig
+  type w = string
+  type 'a m
+  val bind : 'a m -> ('a -> 'b m) -> 'b m
+  val ret : 'a -> 'a m
+  val runWriter : 'a m -> 'a * w
+end
+
+val db : int -> unit M.m
+val dw : int -> unit M.m
+val dd : int -> unit M.m
+val sz : string -> unit M.m
diff --git a/debugger/serializeTest.ml b/debugger/serializeTest.ml
new file mode 100644 (file)
index 0000000..bab358c
--- /dev/null
@@ -0,0 +1,16 @@
+open Base
+open OUnit
+
+open Serialize.M
+open Serialize
+
+let _ = begin "serialize.ml" >::: [
+  "monad" >:: begin fun () ->
+    let m = perform with module Serialize.M in begin
+       db 42
+    end in
+    let data =
+      snd @@ runWriter m in
+      assert_equal "" data
+  end
+] end +> run_test_tt_main