Browse Source

add TNew transform

frabbit 11 years ago
parent
commit
0e0dbbfd8f
1 changed files with 6 additions and 1 deletions
  1. 6 1
      genpy.ml

+ 6 - 1
genpy.ml

@@ -607,7 +607,12 @@ module Transformer = struct
 			let x = trans true [] x in
 			let r = { a_expr with eexpr = TThrow(x.a_expr)} in
 			lift false x.a_blocks r
-		| (_, TNew(c, tp, params)) -> assert false
+		| (_, TNew(c, tp, params)) -> 
+			let params = List.map (trans true []) params in
+			let blocks = List.flatten (List.map (fun (p) -> p.a_blocks) params) in
+			let params = List.map (fun (p) -> p.a_expr) params in
+			let e = { a_expr with eexpr = TNew(c, tp, params) } in
+			lift false blocks e
 		| (_, TCall({ eexpr = TLocal({v_name = "__python_for__" })} as x, [param])) -> 
 			let param = trans false [] param in
 			let call = { a_expr with eexpr = TCall(x, [param.a_expr])} in