public bool RemovePackage(string packName) { var superPack = ModuleNameHelper.ExtractPackageName(packName); var pack = Root.GetOrCreateSubPackage(superPack); return(pack != null && pack.Packages.Remove(ModuleNameHelper.ExtractModuleName(packName))); }
public bool Remove(string moduleName) { var packName = ModuleNameHelper.ExtractPackageName(moduleName); var pack = Root.GetOrCreateSubPackage(packName, false); return(pack != null && pack.Modules.Remove(ModuleNameHelper.ExtractModuleName(moduleName))); }
public static DModule GetModule(string basePath, string moduleName) { var pack = GetPackage(basePath, ModuleNameHelper.ExtractPackageName(moduleName)); if (pack == null) { return(null); } return(pack.GetModule(ModuleNameHelper.ExtractModuleName(moduleName))); }
/// <summary> /// Returns null if no module was found. /// </summary> public IAbstractSyntaxTree GetModule(string moduleName) { var packName = ModuleNameHelper.ExtractPackageName(moduleName); var pack = Root.GetOrCreateSubPackage(packName, false); if (pack != null) { IAbstractSyntaxTree ret = null; if (pack.Modules.TryGetValue(ModuleNameHelper.ExtractModuleName(moduleName), out ret)) { return(ret); } } return(null); }
void ParseThread() { var file = ""; ModulePackage pack = null; while (queue.Count != 0) { lock (queue) { if (queue.Count == 0) { return; } var kv = queue.Pop(); file = kv.Key; pack = kv.Value; } try { // If no debugger attached, save time + memory by skipping function bodies var ast = DParser.ParseFile(file, !Debugger.IsAttached); if (!(pack is RootPackage)) { ast.ModuleName = pack.Path + "." + Path.GetFileNameWithoutExtension(file); } ast.FileName = file; pack.Modules[ModuleNameHelper.ExtractModuleName(ast.ModuleName)] = ast; } catch (Exception ex) { LastException = ex; } } }
/// <summary> /// Use this method to add a syntax tree to the parse cache. /// Equally-named trees will be overwritten. /// </summary> public void AddOrUpdate(IAbstractSyntaxTree ast) { if (ast == null) { return; } var packName = ModuleNameHelper.ExtractPackageName(ast.ModuleName); if (string.IsNullOrEmpty(packName)) { Root.Modules[ast.ModuleName] = ast; if (ast.ModuleName == "object") { HandleObjectModule(ast); } return; } var pack = Root.GetOrCreateSubPackage(packName, true); pack.Modules[ModuleNameHelper.ExtractModuleName(ast.ModuleName)] = ast; }