Parcourir la source

allowed loading of flash9 package for documentation.

Nicolas Cannasse il y a 19 ans
Parent
commit
af367a407a
3 fichiers modifiés avec 232 ajouts et 0 suppressions
  1. 4 0
      std/all.hxml
  2. 168 0
      std/haxe/ImportAll.hx
  3. 60 0
      typer.ml

+ 4 - 0
std/all.hxml

@@ -1,3 +1,4 @@
+
 -neko all.n
 -xml neko.xml
 --override
@@ -7,6 +8,7 @@ haxe.ImportAll
 
 -swf all.swf
 -xml flash.xml
+-D flash9doc
 --override
 haxe.ImportAll
 
@@ -18,8 +20,10 @@ haxe.ImportAll
 haxe.ImportAll
 
 --next
+
 -swf all.swf
 -D flash_strict
+-D flash9doc
 -xml flash_strict.xml
 --override
 haxe.ImportAll

+ 168 - 0
std/haxe/ImportAll.hx

@@ -286,6 +286,174 @@ import flash.text.StyleSheet;
 import flash.system.Capabilities;
 import flash.system.Security;
 
+// generated by haxe
+import flash9.events.IEventDispatcher;
+import flash9.events.WeakMethodClosure;
+import flash9.events.WeakFunctionClosure;
+import flash9.events.EventDispatcher;
+import flash9.net.XMLSocket;
+import flash9.utils.Dictionary;
+import flash9.xml.XMLTag;
+import flash9.text.TextFieldAutoSize;
+import flash9.filters.BitmapFilter;
+import flash9.filters.DisplacementMapFilter;
+import flash9.net.Responder;
+import flash9.printing.PrintJob;
+import flash9.xml.XMLNodeType;
+import flash9.utils.IDataInput;
+import flash9.utils.ObjectInput;
+import flash9.events.EventPhase;
+import flash9.net.URLLoaderDataFormat;
+import flash9.system.SecurityPanel;
+import flash9.net.IDynamicPropertyWriter;
+import flash9.display.Graphics;
+import flash9.ui.ContextMenu;
+import flash9.ui.ContextMenuItem;
+import flash9.display.IBitmapDrawable;
+import flash9.display.DisplayObject;
+import flash9.display.Bitmap;
+import flash9.net.FileReferenceList;
+import flash9.events.Event;
+import flash9.events.TextEvent;
+import flash9.events.DataEvent;
+import flash9.system.FSCommand;
+import flash9.text.TextColorType;
+import flash9.external.ExternalInterface;
+import flash9.ui.KeyLocation;
+import flash9.utils.IDataOutput;
+import flash9.system.Security;
+import flash9.events.KeyboardEvent;
+import flash9.display.BitmapDataChannel;
+import flash9.text.StaticText;
+import flash9.geom.Matrix;
+import flash9.events.FocusEvent;
+import flash9.net.SharedObjectFlushStatus;
+import flash9.display.BlendMode;
+import flash9.events.HTTPStatusEvent;
+import flash9.system.System;
+import flash9.filters.BlurFilter;
+import flash9.filters.DisplacementMapFilterMode;
+import flash9.geom.Rectangle;
+import flash9.utils.Timer;
+import flash9.utils.SetIntervalTimer;
+import flash9.system.Capabilities;
+import flash9.system.ApplicationDomain;
+import flash9.display.StageAlign;
+import flash9.media.Microphone;
+import flash9.text.TextFieldType;
+import flash9.utils.Proxy;
+import flash9.media.Camera;
+import flash9.events.NetFilterEvent;
+import flash9.display.InteractiveObject;
+import flash9.display.DisplayObjectContainer;
+import flash9.display.Stage;
+import flash9.accessibility.Accessibility;
+import flash9.text.GridFitType;
+import flash9.geom.Point;
+import flash9.ui.Mouse;
+import flash9.xml.XMLParser;
+import flash9.text.FontStyle;
+import flash9.net.NetStream;
+import flash9.printing.PrintJobOptions;
+import flash9.net.FileReference;
+import flash9.events.SyncEvent;
+import flash9.display.StageQuality;
+import flash9.geom.Transform;
+import flash9.xml.XMLNode;
+import flash9.accessibility.AccessibilityProperties;
+import flash9.filters.DropShadowFilter;
+import flash9.system.IMEConversionMode;
+import flash9.text.TextFormatDisplay;
+import flash9.filters.ColorMatrixFilter;
+import flash9.filters.GradientGlowFilter;
+import flash9.display.ActionScriptVersion;
+import flash9.system.SecurityDomain;
+import flash9.media.Video;
+import flash9.net.IDynamicPropertyOutput;
+import flash9.net.DynamicPropertyOutput;
+import flash9.media.SoundTransform;
+import flash9.display.MorphShape;
+import flash9.net.LocalConnection;
+import flash9.display.AVM1Movie;
+import flash9.filters.GradientBevelFilter;
+import flash9.ui.ContextMenuBuiltInItems;
+import flash9.net.URLRequestHeader;
+import flash9.net.URLLoader;
+import flash9.text.TextExtent;
+import flash9.display.Sprite;
+import flash9.display.PixelSnapping;
+import flash9.display.Shape;
+import flash9.media.SoundMixer;
+import flash9.system.IME;
+import flash9.filters.ConvolutionFilter;
+import flash9.events.StatusEvent;
+import flash9.events.MouseEvent;
+import flash9.xml.XMLDocument;
+import flash9.utils.ByteArray;
+import flash9.net.Socket;
+import flash9.net.URLRequest;
+import flash9.display.SWFVersion;
+import flash9.events.ProgressEvent;
+import flash9.display.JointStyle;
+import flash9.text.StyleSheet;
+import flash9.text.AntiAliasType;
+import flash9.display.InterpolationMethod;
+import flash9.media.ID3Info;
+import flash9.events.ErrorEvent;
+import flash9.events.IOErrorEvent;
+import flash9.events.SecurityErrorEvent;
+import flash9.media.Sound;
+import flash9.net.URLStream;
+import flash9.display.SimpleButton;
+import flash9.text.TextFormatAlign;
+import flash9.display.GradientType;
+import flash9.net.URLVariables;
+import flash9.printing.PrintJobOrientation;
+import flash9.display.LineScaleMode;
+import flash9.events.AsyncErrorEvent;
+import flash9.display.StageScaleMode;
+import flash9.filters.BitmapFilterQuality;
+import flash9.text.TextSnapshot;
+import flash9.display.Loader;
+import flash9.display.BitmapData;
+import flash9.utils.ObjectOutput;
+import flash9.utils.IExternalizable;
+import flash9.events.TimerEvent;
+import flash9.text.FontType;
+import flash9.net.FileFilter;
+import flash9.text.Font;
+import flash9.utils.Endian;
+import flash9.display.CapsStyle;
+import flash9.filters.BevelFilter;
+import flash9.net.SharedObject;
+import flash9.system.LoaderContext;
+import flash9.media.SoundLoaderContext;
+import flash9.text.TextFormat;
+import flash9.events.NetStatusEvent;
+import flash9.display.LoaderInfo;
+import flash9.text.TextDisplayMode;
+import flash9.text.TextRenderer;
+import flash9.net.URLRequestMethod;
+import flash9.geom.ColorTransform;
+import flash9.events.IMEEvent;
+import flash9.display.FrameLabel;
+import flash9.net.ObjectEncoding;
+import flash9.display.Scene;
+import flash9.ui.Keyboard;
+import flash9.events.ActivityEvent;
+import flash9.net.NetConnection;
+import flash9.filters.BitmapFilterType;
+import flash9.display.SpreadMethod;
+import flash9.text.TextField;
+import flash9.media.SoundChannel;
+import flash9.filters.GlowFilter;
+import flash9.display.MovieClip;
+import flash9.accessibility.AccessibilityImplementation;
+import flash9.events.ContextMenuEvent;
+import flash9.text.CSMSettings;
+import flash9.text.TextLineMetrics;
+import flash9.text.TextRun;
+
 #end
 
 #if flash8

+ 60 - 0
typer.ml

@@ -2188,6 +2188,65 @@ let type_module ctx m tdecls loadp =
 	m.mimports <- List.rev m.mimports;
 	m
 
+let rec f9path p = {
+	tpackage = (match p.tpackage with "flash" :: l -> "flash9" :: l | l -> l);
+	tname = p.tname;
+	tparams = List.map f9t p.tparams;
+}
+
+and f9t = function
+	| TPNormal t -> TPNormal (f9path t)
+	| TPFunction (tl,t) -> TPFunction (List.map f9t tl,f9t t)
+	| TPAnonymous fields -> TPAnonymous (List.map f9a fields)
+	| TPParent t -> TPParent (f9t t)
+	| TPExtend (t,fields) -> TPExtend (f9path t,List.map f9a fields)
+
+and f9a (name,f,p) =
+	name , (match f with
+		| AFVar t -> AFVar (f9t t)
+		| AFProp (t,g,s) -> AFProp (f9t t,g,s)
+		| AFFun (pl,t) -> AFFun (List.map (fun (name,p,t) -> name, p, f9t t) pl,f9t t)
+	) , p
+
+let f9to = function
+	| None -> None
+	| Some t -> Some (f9t t)
+
+let f9decl (d,p) = 
+	(match d with
+	| EClass (name,doc,params,flags,fields) ->
+		EClass (name,doc,params,List.map (function
+			| HInterface
+			| HExtern
+			| HPrivate as f -> f
+			| HExtends p -> HExtends (f9path p)
+			| HImplements p -> HImplements (f9path p)
+		) flags,List.map (fun (f,p) ->
+			(match f with
+			| FVar (name,doc,acc,t,e) ->
+				FVar (name,doc,acc,f9to t,e)
+			| FFun (name,doc,acc,params,f) ->
+				FFun (name,doc,acc,params,{
+					f_args = List.map (fun (n,o,t) -> n , o, f9to t) f.f_args;
+					f_type = f9to f.f_type;
+					f_expr = f.f_expr;
+				})
+			| FProp (name,doc,acc,get,set,t) ->
+				FProp (name,doc,acc,get,set,f9t t)
+			) , p
+		) fields)
+	| EEnum (name,doc,params,flags,constrs) ->
+		EEnum (name,doc,params,flags,List.map (fun (name,doc,args,p) -> 
+			name, doc, List.map (fun (name,p,t) -> name, p, f9t t) args, p
+		) constrs)
+	| ETypedef (name,doc,params,flags,t) ->
+		ETypedef (name,doc,params,flags,f9t t)
+	| EImport ("flash" :: l,x,o) ->
+		EImport ("flash9" :: l,x,o)
+	| EImport _ ->
+		d
+	) , p
+
 let load ctx m p =
 	try
 		Hashtbl.find ctx.modules m
@@ -2203,6 +2262,7 @@ let load ctx m p =
 			let file = (try Plugin.find_file file with Not_found -> raise (Error (Module_not_found m,p))) in
 			let ch = (try open_in file with _ -> error ("Could not open " ^ file) p) in
 			let pack , decls = (try Parser.parse (Lexing.from_channel ch) file with e -> close_in ch; raise e) in
+			let pack , decls = (match pack , fst m with "flash" :: l , "flash9" :: l2 when l = l2 && Plugin.defined "flash9doc" -> fst m, List.map f9decl decls | _ -> pack , decls) in
 			close_in ch;
 			if !Plugin.verbose then print_endline ("Parsed " ^ file);
 			if pack <> fst m then begin