private static CppHeaderContext ProcessHeaderFile(string fileName, string dialogClassName) { if (HeaderFileMap.ContainsKey(fileName.ToLower())) { IProjectFile projectFile = HeaderFileMap[fileName.ToLower()]; CppHeaderContext cppHeaderContext = new CppHeaderContext(projectFile.Name, dialogClassName); CurrentFileContext = cppHeaderContext; cppHeaderContext.ProjectFile = projectFile; cppHeaderContext.Init(); CurrentFileContext = cppHeaderContext; AnalyzeHeaderContext(cppHeaderContext); cppHeaderContext.WriteSavedNodes(); cppHeaderContext.ProcessResults(); cppHeaderContext.Finalize(); return(cppHeaderContext); } else { LogManager.Self.Log($"Missing Header File in map: {fileName}"); return(null); } }
public CppClassResult AddClassResult(CppFileContextBase cppFileContext, PenWebClassSpecifier penWebClassSpecifier) { CppClassResult cppClassResult = null; if (!this.ClassMap.ContainsKey(penWebClassSpecifier.ClassName)) { cppClassResult = new CppClassResult(penWebClassSpecifier.ClassName, penWebClassSpecifier.BaseClass); this.ClassMap.Add(penWebClassSpecifier.ClassName, cppClassResult); return(cppClassResult); } else { return(this.ClassMap[penWebClassSpecifier.ClassName]); } }
public void AddVariableReference(CppFileContextBase cppFileContext, PenWebQualifiedReference penWebQualifiedReference, string fileName) { if (this.ClassMap.ContainsKey(penWebQualifiedReference.OwningClass)) { CppClassResult cppClassResult = this.ClassMap[penWebQualifiedReference.OwningClass]; CppVariableReference cppVariableReference = cppClassResult.AddVariableReference(penWebQualifiedReference.ItemName, fileName, penWebQualifiedReference.Location.StartLine); } else { if (this.MissingRefClassNames.ContainsKey(penWebQualifiedReference.OwningClass)) { this.MissingRefClassNames[penWebQualifiedReference.OwningClass]++; } else { this.MissingRefClassNames.Add(penWebQualifiedReference.OwningClass, 1); } LogManager.Self.Log($"Unknown TypeName: {penWebQualifiedReference.OwningClass}"); } }
private static void ProcessCppFile(CppHeaderContext cppHeaderContext, string fileName, string dialogClassName) { if (CppFileMap.ContainsKey(fileName.ToLower())) { IProjectFile projectFile = CppFileMap[fileName.ToLower()]; CppCodeContext cppCodeContext = new CppCodeContext(fileName, dialogClassName); cppCodeContext.CppHeaderContext = cppHeaderContext; cppHeaderContext.CppCodeContext = cppCodeContext; cppCodeContext.WidgetTypeFinder = new WidgetTypeFinder(cppCodeContext, cppHeaderContext); CurrentFileContext = cppCodeContext; cppCodeContext.ProjectFile = projectFile; cppCodeContext.Init(); CurrentFileContext = cppCodeContext; AnalyzeCodeContext(cppCodeContext); cppCodeContext.WriteSavedNodes(); cppCodeContext.ProcessResults(); cppCodeContext.Finalize(); cppCodeContext.SaveClassInfo(); cppCodeContext.WidgetTypeFinder.DoAnalytics(); } else { LogManager.Self.Log($"Missing Cpp File in map: {fileName}"); } }
public void AddVariableDefinition(CppFileContextBase cppFileContext, PenWebDeclaration penWebDeclaration, string fileName) { CppTypeResult cppTypeResult = null; if (this.TypeMap.ContainsKey(penWebDeclaration.TypeName)) { cppTypeResult = this.TypeMap[penWebDeclaration.TypeName]; } else { cppTypeResult = new CppTypeResult(penWebDeclaration.TypeName); this.TypeMap.Add(penWebDeclaration.TypeName, cppTypeResult); } CppVariableDefinition cppVariableDefinition = cppTypeResult.AddDefinition(penWebDeclaration.VariableName, penWebDeclaration.OwningClass, fileName, penWebDeclaration.Location.StartLine); if (this.ClassMap.ContainsKey(penWebDeclaration.OwningClass)) { CppClassResult cppClassResult = this.ClassMap[penWebDeclaration.OwningClass]; cppClassResult.AddVariableDefinition(cppVariableDefinition); } else { if (this.MissingDefClassNames.ContainsKey(penWebDeclaration.OwningClass)) { this.MissingDefClassNames[penWebDeclaration.OwningClass]++; } else { this.MissingDefClassNames.Add(penWebDeclaration.OwningClass, 1); } LogManager.Self.Log($"Unknown class: {penWebDeclaration.OwningClass}"); } }