Beispiel #1
0
        bool ProcessTypes(List <Identifier> Out)
        {
            var Aliases    = new AliasDeclarationList();
            var Namespaces = NamespaceDeclList.CreateAndDeclareRecursively(this);

            if (Namespaces == null)
            {
                return(false);
            }

            if (!Aliases.RecognizeRecursively(this))
            {
                return(false);
            }
            if (!Aliases.Declare(false))
            {
                return(false);
            }

            var Types = TypeDeclarationList.CreateAndDeclareRecursively(this);

            if (Types == null)
            {
                return(false);
            }

            SearchCommonIdentifiers();
            if (!Aliases.Recognize(Types))
            {
                return(false);
            }
            if (!Aliases.Declare(false))
            {
                return(false);
            }

            var Consts = ConstDeclarationList.CreateAndDeclareRecursively(this);

            if (Consts == null || !Aliases.Declare(false))
            {
                return(false);
            }

            if (!ProcessClassBases(this))
            {
                return(false);
            }
            if (!ProcessScopes(this, Out))
            {
                return(false);
            }

            Flags |= GlobalContainerFlags.StructureMembersParsed;
            if (!ProcessStructureIdentifiers(this))
            {
                return(false);
            }
            return(Aliases.Declare());
        }