Exemple #1
0
        private void GetGlobalTypeForType(FieldNameFinder inNameFinder, ConstantValue tmpConstant, string tmpVal)
        {
            //Check for in Variable List
            var tmpVar = inNameFinder.VariableList?.FirstOrDefault(inItem => inItem.Name == tmpVal);

            if (tmpVar != null)
            {
                tmpConstant.Value = tmpVar;
                tmpConstant.Type  = tmpVar.Type;
                //TODO load class for Type
                inNameFinder.Class = ProjectInformation.ClassFromBaseType(tmpVar.Type);
            }
            else
            {
                //TODO Check for Parent CLass FieldList
                var tmpField = inNameFinder.Class?.FieldList?.FirstOrDefault(inItem => inItem.Name == tmpVal);
                if (tmpField != null)
                {
                    tmpConstant.Value = tmpField;
                    tmpConstant.Type  = tmpField.Type;
                    //TODO load class for Type
                    inNameFinder.Class = ProjectInformation.ClassFromBaseType(tmpField.Type);
                }
                else
                {
                    //Check for Static Types, System aliases or other Unknown Type
                    var tmpStaticClassOrUnknown = ProjectInformation.GetClassOrUnknownForType(tmpVal, inNameFinder.Class ?? inNameFinder.MethodeParentClass ?? new ClassContainer());
                    //tmpConstant.Value = tmpStaticClassOrUnknown.Type;
                    if (tmpConstant.Type != null)
                    {
                        tmpConstant.Type.Type = tmpStaticClassOrUnknown.Type.Type;
                    }
                    else
                    {
                        tmpConstant.Type = tmpStaticClassOrUnknown.Type;
                    }

                    inNameFinder.Class = tmpStaticClassOrUnknown;
                }
            }
        }
Exemple #2
0
        /// <summary>
        /// Create Project from system known data
        /// </summary>
        /// <param name="inProject"></param>
        /// <param name="inAliasList"></param>
        /// <param name="inSystemNamespace"></param>
        public static ProjectInformation CreateSystemProjectInformation(List <ClassContainer> inSystemClassList, List <AliasObject> inAliasList, string inSystemNamespace)
        {
            var tmpProject = new ProjectInformation();

            tmpProject.FillClasses(inSystemClassList);

            foreach (var tmpAlias in inAliasList)
            {
                tmpProject.AddAlias(tmpAlias.To, tmpProject.GetClassOrUnknownForType(tmpAlias.From, new List <string> {
                    inSystemNamespace
                }));
            }

            return(tmpProject);
        }