Commit a4c492f2 authored by Lucas Coatanlem's avatar Lucas Coatanlem
Browse files

Modified to correct types / function js_to_cduce. Only strings are available.

Need to do the same for Numbers, Booleans, and then Objects.
parent 9f010430
...@@ -83,21 +83,16 @@ let js_to_cduce e = ...@@ -83,21 +83,16 @@ let js_to_cduce e =
let size = Array.length content in let size = Array.length content in
begin begin
for i = 0 to size - 1 do for i = 0 to size - 1 do
let (n,v) = content.(i) in let obj = content.(i) in
let n : Js.js_string Js.t = Js.Unsafe.get obj (Js.string "name") in
let v : 'a Js.t = Js.Unsafe.get obj (Js.string "value") in
match simple_js_to_cduce v with match simple_js_to_cduce v with
None -> () None -> ()
| Some vcduce -> res := (Label.mk_ascii (Js.to_string n), vcduce) :: !res | Some vcduce -> res := (Label.mk_ascii (Js.to_string n), vcduce) :: !res
done; done;
Value.vrecord !res Value.vrecord !res
end end
(* initialiser une ref à [], (* Commencer à réfléchir à js_to_cduce qui appelle la fonction, et qui, si c'est un string, fait ce qu'il faut, si c'est un number, fait ce qu'il faut, et si c'est un object, il faut que cela se rappelle récursivement pour créer un record cduce à l'intérieur du record cduce.
pour chaque ligne dans content (name : n, value : v),
match simple_js_to_cduce v with
None -> ()
| Some vcduce -> res := (Label.mk_ascii (Js.to_string n), vcduce) :: !res
et enfin Value.vrecord !res
Commencer à réfléchir à js_to_cduce qui appelle la fonction, et qui, si c'est un string, fait ce qu'il faut, si c'est un number, fait ce qu'il faut, et si c'est un object, il faut que cela se rappelle récursivement pour créer un record cduce à l'intérieur du record cduce.
*) *)
......
...@@ -9,4 +9,13 @@ let doc = load_xml "foo" ...@@ -9,4 +9,13 @@ let doc = load_xml "foo"
let [] = replace_outer "foo" (print_xml <div id="bar1">[]) let [] = replace_outer "foo" (print_xml <div id="bar1">[])
(* "<div id='bar' />" *) (* "<div id='bar' />" *)
let [] = replace_inner "bar1" (print_xml <div id="bar2">[]) let [] = replace_inner "bar1" (print_xml <div id="bar2">[])
let [] = print (print_xml doc) let [] = print (print_xml doc)
\ No newline at end of file
let h (id : Latin1) (ev : { .. }) : [] =
print (string_of { foo="bar" });
print (string_of ev);
print "Handler appelé\n"
;;
let [] = register_event "baz" "click" h
;;
...@@ -4,6 +4,7 @@ ...@@ -4,6 +4,7 @@
</head> </head>
<body> <body>
Activer la console javascript avec Ctrl-Shif-I -&gt; Console Activer la console javascript avec Ctrl-Shif-I -&gt; Console
<button id="baz">click me!</button>
<div id="foo"/> <div id="foo"/>
<script type="text/javascript" src="main.js" > </script> <script type="text/javascript" src="main.js" > </script>
</body> </body>
......
...@@ -264,8 +264,13 @@ register_fun2 "replace_outer" ...@@ -264,8 +264,13 @@ register_fun2 "replace_outer"
Value.nil Value.nil
);; );;
let htype = Types.( arrow
(cons string_latin1)
(cons (arrow (cons empty_open_record) (cons nil)))
);;
register_fun3 "register_event" register_fun3 "register_event"
any any any nil string_latin1 string_latin1 htype nil
(fun id event handler -> (fun id event handler ->
!Print_xml.register_event !Print_xml.register_event
id id
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment