コード例 #1
0
        public void SaveClassInfo()
        {
            string classInfoPath = CppParseManager.CreateAnalyticsFilePath(this.DialogClassName, $"ClassMap.json");

            if (CppResultsManager.Self.ClassMap.ContainsKey(this.DialogClassName))
            {
                CppClassResult cppClassResult = CppResultsManager.Self.ClassMap[this.DialogClassName];

                string jsonData = JsonConvert.SerializeObject(cppClassResult, Formatting.Indented);

                File.WriteAllText(classInfoPath, jsonData);

                CppResultsManager.Self.ClassMap.Remove(this.DialogClassName);
            }
        }
コード例 #2
0
        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]);
            }
        }
コード例 #3
0
        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}");
            }
        }
コード例 #4
0
        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}");
            }
        }