/// <summary> /// Parse import statements in source /// </summary> /// <param name="src">Class source</param> /// <param name="aClass">Class object to update</param> static private void ParseImports(string src, ASClass aClass) { aClass.Imports.Clear(); src = src.Replace('\r', '\n'); // fix .NET Regex line-ends detection MatchCollection mcImports = re_import.Matches(src); if (mcImports.Count > 0) { ArrayList known = new ArrayList(); string package; string cname; ASMember newImport; foreach (Match mImport in mcImports) { package = mImport.Groups["package"].Value; //DebugConsole.Trace("IMPORT '"+package+"'"); int p = package.LastIndexOf("."); cname = (p >= 0) ? package.Substring(p + 1) : package; // resolve wildcard if (cname.Length == 0) { context.ResolveWildcards(package, aClass, known); } else if (!known.Contains(package)) { known.Add(package); newImport = new ASMember(); newImport.Name = cname; newImport.Type = package; aClass.Imports.Add(newImport); } } } //else DebugConsole.Trace("NO IMPORTS"); }