Ejemplo n.º 1
0
        public static string GetNameStr(this ICppQualifiedNamePart namePart)
        {
            CppQualifiedNamePartVisitor cppQualifiedNamePartVisitor = new CppQualifiedNamePartVisitor();

            CppQualifiedNamePartVisitorData cppQualifiedNamePartVisitorData = new CppQualifiedNamePartVisitorData();

            namePart.Accept <CppQualifiedNamePartVisitorResult, CppQualifiedNamePartVisitorData>(cppQualifiedNamePartVisitorData, cppQualifiedNamePartVisitor);

            return(cppQualifiedNamePartVisitor.StringBuilder.ToString().Trim());
        }
Ejemplo n.º 2
0
        public static string GetNameStr(this CppQualifiedName cppQualifiedName)
        {
            if (cppQualifiedName.Name != null)
            {
                ICppQualifiedNamePart namePart = cppQualifiedName.Name;

                CppQualifiedNamePartVisitor cppQualifiedNamePartVisitor = new CppQualifiedNamePartVisitor();

                CppQualifiedNamePartVisitorData cppQualifiedNamePartVisitorData = new CppQualifiedNamePartVisitorData();

                namePart.Accept <CppQualifiedNamePartVisitorResult, CppQualifiedNamePartVisitorData>(cppQualifiedNamePartVisitorData, cppQualifiedNamePartVisitor);

                return(cppQualifiedNamePartVisitor.StringBuilder.ToString().Trim());
            }
            else
            {
                LogManager.Self.Log("QualifiedName.Name is null");
                return("QualifiedName Error");
            }
        }
Ejemplo n.º 3
0
        public override void Init()
        {
            try
            {
                //QualifiedReference qualifiedReference = this.QualifiedReference;

                CppQualifiedName cppQualifiedName = this.QualifiedReference.GetQualifiedName();

                this.ItemName = cppQualifiedName.GetNameStr();


                CppResolveResult cppResolveResult = this.QualifiedReference.GetResolvedReference();

                switch (cppResolveResult.GetStatus())
                {
                case CppResolveResult.Status.OK:
                    ICppResolveEntity cppResolveEntity = cppResolveResult.GetPrimaryEntity();
                    if (cppResolveEntity != null)
                    {
                        /*
                         * IGenericSymbolNode genericSymbolNode = cppResolveEntity.TryGetDeclarator();
                         *
                         * if (genericSymbolNode != null)
                         * {
                         *  ICppSymbol cppSymbol = genericSymbolNode.GetGenericSymbol();
                         *
                         *  string symbolType = cppSymbol.GetType().Name;
                         *
                         *  switch (cppSymbol)
                         *  {
                         *      case CppDeclaratorSymbol cppDeclaratorSymbol:
                         *          break;
                         *
                         *      default:
                         *          break;
                         *  }
                         * }
                         */

                        ICppQualifiedNamePart cppQualifiedNamePart = cppResolveEntity.Name;

                        ICppResolveEntity parentResolveEntity = cppResolveEntity.StructuralParent;

                        if (parentResolveEntity != null && parentResolveEntity.Name != null)
                        {
                            this.OwningClass = parentResolveEntity.Name.GetNameStr();
                        }

                        //string namePartStr = cppQualifiedNamePart.GetNameStr();
                    }
                    break;

                default:
                    break;
                }

                //ICppQualifiedNamePart cppQualifiedNamePart = this.QualifiedReference.NamePart;
                //ICppExpressionNode cppExpressionNode = this.MemberAccessExpression.Qualifier;
                CppTypeAndCategory cppTypeAndCatagory = this.QualifiedReference.GetTypeAndCategory();

                CppQualType cppQualType = cppTypeAndCatagory.Type;

                CppTypeVisitor cppTypeVisitor = new CppTypeVisitor();

                cppQualType.Accept(cppTypeVisitor);

                string typeStr = cppTypeVisitor.TypeStr;
                string dbgStr  = cppTypeVisitor.DbgStr;

                this.TypeName = cppTypeVisitor.DbgStr;

                /*
                 * ICppExpression leftArguement = this.MemberAccessExpression.GetLeftArgument();
                 * CppExpressionVisitor cppExpressionVisitor = new CppExpressionVisitor();
                 * leftArguement.Accept<CppExpressonVisitorResult>(cppExpressionVisitor);
                 */

                base.Init();

                this.CppFunctionCatagory = CppFunctionCatagory.VariableRef;

                /*
                 * PenWebDeclaration penWebDeclaration = this.GetParentByType<PenWebDeclaration>();
                 *
                 * if (penWebDeclaration != null)
                 * {
                 *  string owningClass = penWebDeclaration.OwningClass;
                 *  string typeName = penWebDeclaration.TypeName;
                 *  string itemName = penWebDeclaration.VariableName;
                 *
                 * }
                 */

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

            this.QualifiedReference = null;
        }