Browse Source

restructure code

Simon Krajewski 8 years ago
parent
commit
e0b96e9849
56 changed files with 71 additions and 72 deletions
  1. 1 1
      Makefile
  2. 0 0
      src/codegen/codegen.ml
  3. 0 0
      src/codegen/dotnet.ml
  4. 0 0
      src/codegen/gencommon/abstractImplementationFix.ml
  5. 0 0
      src/codegen/gencommon/arrayDeclSynf.ml
  6. 0 0
      src/codegen/gencommon/castDetect.ml
  7. 0 0
      src/codegen/gencommon/classInstance.ml
  8. 0 0
      src/codegen/gencommon/closuresToClass.ml
  9. 0 0
      src/codegen/gencommon/dynamicFieldAccess.ml
  10. 0 0
      src/codegen/gencommon/dynamicOperators.ml
  11. 0 0
      src/codegen/gencommon/enumToClass.ml
  12. 0 0
      src/codegen/gencommon/enumToClass2.ml
  13. 0 0
      src/codegen/gencommon/expressionUnwrap.ml
  14. 0 0
      src/codegen/gencommon/filterClosures.ml
  15. 0 0
      src/codegen/gencommon/fixOverrides.ml
  16. 0 0
      src/codegen/gencommon/gencommon.ml
  17. 0 0
      src/codegen/gencommon/hardNullableSynf.ml
  18. 0 0
      src/codegen/gencommon/initFunction.ml
  19. 0 0
      src/codegen/gencommon/intDivisionSynf.ml
  20. 0 0
      src/codegen/gencommon/interfaceProps.ml
  21. 0 0
      src/codegen/gencommon/interfaceVarsDeleteModf.ml
  22. 0 0
      src/codegen/gencommon/normalize.ml
  23. 0 0
      src/codegen/gencommon/objectDeclMap.ml
  24. 0 0
      src/codegen/gencommon/overloadingConstructor.ml
  25. 0 0
      src/codegen/gencommon/realTypeParams.ml
  26. 0 0
      src/codegen/gencommon/reflectionCFs.ml
  27. 0 0
      src/codegen/gencommon/renameTypeParameters.ml
  28. 0 0
      src/codegen/gencommon/setHXGen.ml
  29. 0 0
      src/codegen/gencommon/switchToIf.ml
  30. 0 0
      src/codegen/gencommon/tArrayTransform.ml
  31. 0 0
      src/codegen/gencommon/unnecessaryCastsRemoval.ml
  32. 0 0
      src/codegen/gencommon/unreachableCodeEliminationSynf.ml
  33. 0 0
      src/codegen/genxml.ml
  34. 0 0
      src/codegen/java.ml
  35. 0 0
      src/codegen/overloads.ml
  36. 0 0
      src/codegen/swfLoader.ml
  37. 0 0
      src/compiler/displayOutput.ml
  38. 29 1
      src/context/common.ml
  39. 0 0
      src/context/display.ml
  40. 0 0
      src/context/displayTypes.ml
  41. 0 0
      src/context/sourcemaps.ml
  42. 0 0
      src/context/typecore.ml
  43. 0 0
      src/core/abstract.ml
  44. 0 0
      src/core/ast.ml
  45. 0 0
      src/core/define.ml
  46. 0 0
      src/core/error.ml
  47. 0 0
      src/core/globals.ml
  48. 0 0
      src/core/json.ml
  49. 0 0
      src/core/meta.ml
  50. 0 0
      src/core/path.ml
  51. 0 0
      src/core/type.ml
  52. 0 37
      src/filters/filters.ml
  53. 36 0
      src/filters/varLazifier.ml
  54. 2 2
      src/generators/hlinterp.ml
  55. 2 30
      src/macro/eval/evalStdLib.ml
  56. 1 1
      src/typing/macroContext.ml

+ 1 - 1
Makefile

@@ -28,7 +28,7 @@ STATICLINK?=0
 
 # Configuration
 
-HAXE_DIRECTORIES=compiler context generators generators/gencommon macro filters macro/eval optimization syntax typing display
+HAXE_DIRECTORIES=core syntax context codegen codegen/gencommon generators optimization filters macro macro/eval typing compiler
 EXTLIB_LIBS=extlib-leftovers extc neko javalib swflib ttflib ilib objsize pcre ziplib
 FINDLIB_LIBS=unix str threads sedlex xml-light extlib rope ptmap dynlink
 

+ 0 - 0
src/generators/codegen.ml → src/codegen/codegen.ml


+ 0 - 0
src/typing/dotnet.ml → src/codegen/dotnet.ml


+ 0 - 0
src/generators/gencommon/abstractImplementationFix.ml → src/codegen/gencommon/abstractImplementationFix.ml


+ 0 - 0
src/generators/gencommon/arrayDeclSynf.ml → src/codegen/gencommon/arrayDeclSynf.ml


+ 0 - 0
src/generators/gencommon/castDetect.ml → src/codegen/gencommon/castDetect.ml


+ 0 - 0
src/generators/gencommon/classInstance.ml → src/codegen/gencommon/classInstance.ml


+ 0 - 0
src/generators/gencommon/closuresToClass.ml → src/codegen/gencommon/closuresToClass.ml


+ 0 - 0
src/generators/gencommon/dynamicFieldAccess.ml → src/codegen/gencommon/dynamicFieldAccess.ml


+ 0 - 0
src/generators/gencommon/dynamicOperators.ml → src/codegen/gencommon/dynamicOperators.ml


+ 0 - 0
src/generators/gencommon/enumToClass.ml → src/codegen/gencommon/enumToClass.ml


+ 0 - 0
src/generators/gencommon/enumToClass2.ml → src/codegen/gencommon/enumToClass2.ml


+ 0 - 0
src/generators/gencommon/expressionUnwrap.ml → src/codegen/gencommon/expressionUnwrap.ml


+ 0 - 0
src/generators/gencommon/filterClosures.ml → src/codegen/gencommon/filterClosures.ml


+ 0 - 0
src/generators/gencommon/fixOverrides.ml → src/codegen/gencommon/fixOverrides.ml


+ 0 - 0
src/generators/gencommon.ml → src/codegen/gencommon/gencommon.ml


+ 0 - 0
src/generators/gencommon/hardNullableSynf.ml → src/codegen/gencommon/hardNullableSynf.ml


+ 0 - 0
src/generators/gencommon/initFunction.ml → src/codegen/gencommon/initFunction.ml


+ 0 - 0
src/generators/gencommon/intDivisionSynf.ml → src/codegen/gencommon/intDivisionSynf.ml


+ 0 - 0
src/generators/gencommon/interfaceProps.ml → src/codegen/gencommon/interfaceProps.ml


+ 0 - 0
src/generators/gencommon/interfaceVarsDeleteModf.ml → src/codegen/gencommon/interfaceVarsDeleteModf.ml


+ 0 - 0
src/generators/gencommon/normalize.ml → src/codegen/gencommon/normalize.ml


+ 0 - 0
src/generators/gencommon/objectDeclMap.ml → src/codegen/gencommon/objectDeclMap.ml


+ 0 - 0
src/generators/gencommon/overloadingConstructor.ml → src/codegen/gencommon/overloadingConstructor.ml


+ 0 - 0
src/generators/gencommon/realTypeParams.ml → src/codegen/gencommon/realTypeParams.ml


+ 0 - 0
src/generators/gencommon/reflectionCFs.ml → src/codegen/gencommon/reflectionCFs.ml


+ 0 - 0
src/generators/gencommon/renameTypeParameters.ml → src/codegen/gencommon/renameTypeParameters.ml


+ 0 - 0
src/generators/gencommon/setHXGen.ml → src/codegen/gencommon/setHXGen.ml


+ 0 - 0
src/generators/gencommon/switchToIf.ml → src/codegen/gencommon/switchToIf.ml


+ 0 - 0
src/generators/gencommon/tArrayTransform.ml → src/codegen/gencommon/tArrayTransform.ml


+ 0 - 0
src/generators/gencommon/unnecessaryCastsRemoval.ml → src/codegen/gencommon/unnecessaryCastsRemoval.ml


+ 0 - 0
src/generators/gencommon/unreachableCodeEliminationSynf.ml → src/codegen/gencommon/unreachableCodeEliminationSynf.ml


+ 0 - 0
src/generators/genxml.ml → src/codegen/genxml.ml


+ 0 - 0
src/typing/java.ml → src/codegen/java.ml


+ 0 - 0
src/typing/overloads.ml → src/codegen/overloads.ml


+ 0 - 0
src/typing/swfLoader.ml → src/codegen/swfLoader.ml


+ 0 - 0
src/display/displayOutput.ml → src/compiler/displayOutput.ml


+ 29 - 1
src/context/common.ml

@@ -962,4 +962,32 @@ let dump_context com = s_record_fields "" [
 	"class_path",s_list ", " (fun s -> s) com.class_path;
 	"defines",s_pmap (fun s -> s) (fun s -> s) com.defines.values;
 	"defines_signature",s_opt (fun s -> Digest.to_hex s) com.defines.defines_signature;
-]
+]
+
+let parse_float s =
+	let rec loop sp i =
+		if i = String.length s then (if sp = 0 then s else String.sub s sp (i - sp)) else
+		match String.unsafe_get s i with
+		| ' ' when sp = i -> loop (sp + 1) (i + 1)
+		| '0'..'9' | '-' | '+' | 'e' | 'E' | '.' -> loop sp (i + 1)
+		| _ -> String.sub s sp (i - sp)
+	in
+	float_of_string (loop 0 0)
+
+let parse_int s =
+	let rec loop_hex i =
+		if i = String.length s then s else
+		match String.unsafe_get s i with
+		| '0'..'9' | 'a'..'f' | 'A'..'F' -> loop_hex (i + 1)
+		| _ -> String.sub s 0 i
+	in
+	let rec loop sp i =
+		if i = String.length s then (if sp = 0 then s else String.sub s sp (i - sp)) else
+		match String.unsafe_get s i with
+		| '0'..'9' -> loop sp (i + 1)
+		| ' ' when sp = i -> loop (sp + 1) (i + 1)
+		| '-' when i = 0 -> loop sp (i + 1)
+		| ('x' | 'X') when i = 1 && String.get s 0 = '0' -> loop_hex (i + 1)
+		| _ -> String.sub s sp (i - sp)
+	in
+	Int32.of_string (loop 0 0)

+ 0 - 0
src/display/display.ml → src/context/display.ml


+ 0 - 0
src/display/displayTypes.ml → src/context/displayTypes.ml


+ 0 - 0
src/compiler/sourcemaps.ml → src/context/sourcemaps.ml


+ 0 - 0
src/typing/typecore.ml → src/context/typecore.ml


+ 0 - 0
src/typing/abstract.ml → src/core/abstract.ml


+ 0 - 0
src/syntax/ast.ml → src/core/ast.ml


+ 0 - 0
src/context/define.ml → src/core/define.ml


+ 0 - 0
src/typing/error.ml → src/core/error.ml


+ 0 - 0
src/compiler/globals.ml → src/core/globals.ml


+ 0 - 0
src/compiler/json.ml → src/core/json.ml


+ 0 - 0
src/context/meta.ml → src/core/meta.ml


+ 0 - 0
src/compiler/path.ml → src/core/path.ml


+ 0 - 0
src/typing/type.ml → src/core/type.ml


+ 0 - 37
src/optimization/filters.ml → src/filters/filters.ml

@@ -485,43 +485,6 @@ let remove_extern_fields ctx t = match t with
 	| _ ->
 		()
 
-
-module VarLazifier = struct
-	let apply com e =
-		let rec loop var_inits e = match e.eexpr with
-			| TVar(v,Some e1) when (Meta.has (Meta.Custom ":extractorVariable") v.v_meta) ->
-				let var_inits,e1 = loop var_inits e1 in
-				let var_inits = PMap.add v.v_id e1 var_inits in
-				var_inits,{e with eexpr = TVar(v,None)}
-			| TLocal v ->
-				begin try
-					let e_init = PMap.find v.v_id var_inits in
-					let e = {e with eexpr = TBinop(OpAssign,e,e_init)} in
-					let e = {e with eexpr = TParenthesis e} in
-					let var_inits = PMap.remove v.v_id var_inits in
-					var_inits,e
-				with Not_found ->
-					var_inits,e
-				end
-			| TIf(e1,e2,eo) ->
-				let var_inits,e1 = loop var_inits e1 in
-				let _,e2 = loop var_inits e2 in
-				let eo = match eo with None -> None | Some e -> Some (snd (loop var_inits e)) in
-				var_inits,{e with eexpr = TIf(e1,e2,eo)}
-			| TSwitch(e1,cases,edef) ->
-				let var_inits,e1 = loop var_inits e1 in
-				let cases = List.map (fun (el,e) ->
-					let _,e = loop var_inits e in
-					el,e
-				) cases in
-				let edef = match edef with None -> None | Some e -> Some (snd (loop var_inits e)) in
-				var_inits,{e with eexpr = TSwitch(e1,cases,edef)}
-			| _ ->
-				Texpr.foldmap loop var_inits e
-		in
-		snd (loop PMap.empty e)
-end
-
 (* PASS 2 end *)
 
 (* PASS 3 begin *)

+ 36 - 0
src/filters/varLazifier.ml

@@ -0,0 +1,36 @@
+open Ast
+open Type
+
+let apply com e =
+	let rec loop var_inits e = match e.eexpr with
+		| TVar(v,Some e1) when (Meta.has (Meta.Custom ":extractorVariable") v.v_meta) ->
+			let var_inits,e1 = loop var_inits e1 in
+			let var_inits = PMap.add v.v_id e1 var_inits in
+			var_inits,{e with eexpr = TVar(v,None)}
+		| TLocal v ->
+			begin try
+				let e_init = PMap.find v.v_id var_inits in
+				let e = {e with eexpr = TBinop(OpAssign,e,e_init)} in
+				let e = {e with eexpr = TParenthesis e} in
+				let var_inits = PMap.remove v.v_id var_inits in
+				var_inits,e
+			with Not_found ->
+				var_inits,e
+			end
+		| TIf(e1,e2,eo) ->
+			let var_inits,e1 = loop var_inits e1 in
+			let _,e2 = loop var_inits e2 in
+			let eo = match eo with None -> None | Some e -> Some (snd (loop var_inits e)) in
+			var_inits,{e with eexpr = TIf(e1,e2,eo)}
+		| TSwitch(e1,cases,edef) ->
+			let var_inits,e1 = loop var_inits e1 in
+			let cases = List.map (fun (el,e) ->
+				let _,e = loop var_inits e in
+				el,e
+			) cases in
+			let edef = match edef with None -> None | Some e -> Some (snd (loop var_inits e)) in
+			var_inits,{e with eexpr = TSwitch(e1,cases,edef)}
+		| _ ->
+			Texpr.foldmap loop var_inits e
+	in
+	snd (loop PMap.empty e)

+ 2 - 2
src/generators/hlinterp.ml

@@ -1351,13 +1351,13 @@ let load_native ctx lib name t =
 			(function
 			| [VBytes str; VInt pos; VInt len] ->
 				(try
-					VDyn (VInt (EvalStdLib.StdStd.parse_int (hl_to_caml_sub str (int pos) (int len))),HI32)
+					VDyn (VInt (Common.parse_int (hl_to_caml_sub str (int pos) (int len))),HI32)
 				with _ ->
 					VNull)
 			| l -> assert false)
 		| "parse_float" ->
 			(function
-			| [VBytes str; VInt pos; VInt len] -> (try VFloat (EvalStdLib.StdStd.parse_float (hl_to_caml_sub str (int pos) (int len))) with _ -> VFloat nan)
+			| [VBytes str; VInt pos; VInt len] -> (try VFloat (Common.parse_float (hl_to_caml_sub str (int pos) (int len))) with _ -> VFloat nan)
 			| _ -> assert false)
 		| "dyn_compare" ->
 			(function

+ 2 - 30
src/macro/eval/evalStdLib.ml

@@ -1832,34 +1832,6 @@ module StdSocket = struct
 end
 
 module StdStd = struct
-	let parse_float s =
-		let rec loop sp i =
-			if i = String.length s then (if sp = 0 then s else String.sub s sp (i - sp)) else
-			match String.unsafe_get s i with
-			| ' ' when sp = i -> loop (sp + 1) (i + 1)
-			| '0'..'9' | '-' | '+' | 'e' | 'E' | '.' -> loop sp (i + 1)
-			| _ -> String.sub s sp (i - sp)
-		in
-		float_of_string (loop 0 0)
-
-	let parse_int s =
-		let rec loop_hex i =
-			if i = String.length s then s else
-			match String.unsafe_get s i with
-			| '0'..'9' | 'a'..'f' | 'A'..'F' -> loop_hex (i + 1)
-			| _ -> String.sub s 0 i
-		in
-		let rec loop sp i =
-			if i = String.length s then (if sp = 0 then s else String.sub s sp (i - sp)) else
-			match String.unsafe_get s i with
-			| '0'..'9' -> loop sp (i + 1)
-			| ' ' when sp = i -> loop (sp + 1) (i + 1)
-			| '-' when i = 0 -> loop sp (i + 1)
-			| ('x' | 'X') when i = 1 && String.get s 0 = '0' -> loop_hex (i + 1)
-			| _ -> String.sub s sp (i - sp)
-		in
-		Int32.of_string (loop 0 0)
-
 	let is' = vfun2 (fun v t -> match t with
 		| VNull -> vfalse
 		| VPrototype proto -> vbool (is v proto.ppath)
@@ -1881,11 +1853,11 @@ module StdStd = struct
 	)
 
 	let parseInt = vfun1 (fun v ->
-		try vint32 (parse_int (decode_string v)) with _ -> vnull
+		try vint32 (Common.parse_int (decode_string v)) with _ -> vnull
 	)
 
 	let parseFloat = vfun1 (fun v ->
-		try vfloat (parse_float (decode_string v)) with _ -> vnull
+		try vfloat (Common.parse_float (decode_string v)) with _ -> vnull
 	)
 
 	let random = vfun1 (fun v ->

+ 1 - 1
src/macro/macroContext.ml → src/typing/macroContext.ml

@@ -424,7 +424,7 @@ and flush_macro_context mint ctx =
 		mint
 	end else mint in
 	(* we should maybe ensure that all filters in Main are applied. Not urgent atm *)
-	let expr_filters = [Filters.VarLazifier.apply mctx.com;AbstractCast.handle_abstract_casts mctx; CapturedVars.captured_vars mctx.com;] in
+	let expr_filters = [VarLazifier.apply mctx.com;AbstractCast.handle_abstract_casts mctx; CapturedVars.captured_vars mctx.com;] in
 
 	(*
 		some filters here might cause side effects that would break compilation server.