Explorar o código

fixed function parsing.

Nicolas Cannasse %!s(int64=19) %!d(string=hai) anos
pai
achega
9e9ae092ac
Modificáronse 1 ficheiros con 9 adicións e 4 borrados
  1. 9 4
      std/tools/haxedoc/XmlParser.hx

+ 9 - 4
std/tools/haxedoc/XmlParser.hx

@@ -364,9 +364,12 @@ class XmlParser {
 		case "f":
 		case "f":
 			var args = new List();
 			var args = new List();
 			var aname = x.att.a.split(":");
 			var aname = x.att.a.split(":");
-			var elts = x.elements;
-			for( a in aname ) {
+			var eargs = aname.iterator();
+			for( e in x.elements ) {
 				var opt = false;
 				var opt = false;
+				var a = eargs.next();
+				if( a == null )
+					a = "";
 				if( a.charAt(0) == "?" ) {
 				if( a.charAt(0) == "?" ) {
 					opt = true;
 					opt = true;
 					a = a.substr(1);
 					a = a.substr(1);
@@ -374,10 +377,12 @@ class XmlParser {
 				args.add({
 				args.add({
 					name : a,
 					name : a,
 					opt : opt,
 					opt : opt,
-					t : xtype(elts.next()),
+					t : xtype(e),
 				});
 				});
 			}
 			}
-			TFunction(args,xtype(elts.next()));
+			var ret = args.last();
+			args.remove(ret);
+			TFunction(args,ret.t);
 		case "a":
 		case "a":
 			var fields = new List();
 			var fields = new List();
 			for( f in x.elements )
 			for( f in x.elements )