OSDN Git Service

generate class-info
authorMIZUNO Hiroki <mzpppp@gmail.com>
Thu, 14 Aug 2008 01:02:16 +0000 (10:02 +0900)
committerMIZUNO Hiroki <mzpppp@gmail.com>
Thu, 14 Aug 2008 01:02:16 +0000 (10:02 +0900)
Makefile
src/codegen.ml

index 12f78dc..c68b9b0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -26,7 +26,7 @@ src/opcode.ml : util/instruction.txt
 ## pasued target
 .PHONY: clean count count-src
 clean:
-       ocamlbuild -clean
+       $(OCAMLBUILD) -clean
        rm -f  *~ */*~ *.abc *.cm[io] */*.cm[io] src/match.ml src/opcode.{ml,mli}
 
 doc:
@@ -44,3 +44,6 @@ count-src:
 ## general rules
 %.cmo %.byte::
        $(OCAMLBUILD) $@
+
+%.abc : example/%.scm
+       $(OCAMLBUILD) -- -o $@ $<
\ No newline at end of file
index e597439..aa34cf8 100644 (file)
@@ -101,7 +101,7 @@ let rec generate_expr expr env =
          Asm.cname = make_qname name;
          sname     = make_qname sname;
          flags_k   = [];
-         cinit     = make_meth "init" [];
+         cinit     = make_meth "cinit" [];
          iinit     = init;
          interface = [];
          methods   = List.map snd methods;
@@ -247,11 +247,15 @@ let generate program =
     generate_method @@ Closuretrans.trans program in
   let {Asm.abc_cpool=cpool;
        method_info=info;
-       method_body=body} =
+       method_body=body;
+       class_info =class_info;
+       instance_info=instance_info} =
     assemble m in
     { Abc.cpool=cpool;
-      Abc.method_info=info;
-      Abc.method_body=body;
-      Abc.metadata=[]; Abc.classes=[]; Abc.instances=[];
-      Abc.script=[{Abc.init=0; trait_s=[] }] }
+      method_info=info;
+      method_body=body;
+      metadata=[]; 
+      classes=class_info; 
+      instances=instance_info;
+      script=[{Abc.init=0; trait_s=[] }] }