Browse Source

transform TCall

frabbit 11 years ago
parent
commit
e4cfd2d9ea
1 changed files with 8 additions and 1 deletions
  1. 8 1
      genpy.ml

+ 8 - 1
genpy.ml

@@ -612,7 +612,14 @@ module Transformer = struct
 			let param = trans false [] param in
 			let param = trans false [] param in
 			let call = { a_expr with eexpr = TCall(x, [param.a_expr])} in
 			let call = { a_expr with eexpr = TCall(x, [param.a_expr])} in
 			lift_expr call
 			lift_expr call
-		| (_, TCall(e, params)) -> assert false
+		| (_, TCall(e, params)) -> 
+			let e = trans true [] e in
+			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 = TCall(e.a_expr, params) } in
+			lift_expr ~blocks:blocks e
+
 		| (true, TArray(e1, e2)) -> 
 		| (true, TArray(e1, e2)) -> 
 			let e1 = trans true [] e1 in
 			let e1 = trans true [] e1 in
 			let e2 = trans true [] e2 in
 			let e2 = trans true [] e2 in