Example #1
0
        public override void Init()
        {
            try
            {
                CppDeclarationSymbol symbol = this.Declaration.GetSymbol();

                if (symbol != null)
                {
                    this.VariableName = symbol.GetQualifiedName().GetNameStr();
                }
                else
                {
                    LogManager.Self.Log($"PenWebDeclaration() symbol is null");
                }

                AttributeList attributeList = this.Declaration.AttributeListNode;

                if (attributeList != null)
                {
                    foreach (ITreeNode attribute in attributeList.Children())
                    {
                        var typeId   = attribute.NodeType.ToString();
                        var toString = attribute.ToString();
                    }
                }

                base.Init();

                HierarchySnapshot hierarchySnapshot = new HierarchySnapshot(this);

                PenWebDeclarator penWebDeclarator = this.GetChildByType <PenWebDeclarator>();

                if (penWebDeclarator != null)
                {
                    this.VariableName = penWebDeclarator.ItemName;
                }
                else
                {
                    LogManager.Self.Log($"penWebDeclarator is null");
                }

                if (String.IsNullOrWhiteSpace(this.VariableName))
                {
                    PenWebDeclaratorQualifiedName declaratorQualifiedName = this.GetChildByType <PenWebDeclaratorQualifiedName>();

                    if (declaratorQualifiedName != null)
                    {
                        this.VariableName = declaratorQualifiedName.ItemName;
                    }
                    else
                    {
                        LogManager.Self.Log($"declarationSpecifiers is null");
                    }
                }

                PenWebDeclarationSpecifiers declarationSpecifiers = this.GetChildByType <PenWebDeclarationSpecifiers>();

                if (declarationSpecifiers != null)
                {
                    this.TypeName = declarationSpecifiers.ItemName;
                }
                else
                {
                    LogManager.Self.Log($"penWebDeclarator is null");
                }

                PenWebClassSpecifier penWebClassSpecifier = this.GetParentByType <PenWebClassSpecifier>();

                if (penWebClassSpecifier != null)
                {
                    this.OwningClass = penWebClassSpecifier.ClassName;
                }

                this.CppFunctionCatagory = CppFunctionCatagory.VariableDef;

                if (!String.IsNullOrWhiteSpace(this.TypeName) && !String.IsNullOrWhiteSpace(this.VariableName) && !String.IsNullOrWhiteSpace(this.OwningClass))
                {
                    this.SaveToJson = true;
                }
            }
            catch (Exception e)
            {
                LogManager.Self.Log("PenWebDeclaration Exception", e);
            }

            this.Declaration = null;
        }