Beispiel #1
0
        public Class FindClass(string name, bool isComplete,
                               bool createDecl = false)
        {
            var @class = FindClass(name);

            if (@class == null)
            {
                if (createDecl)
                {
                    @class = CreateClass(name, isComplete);
                    Declarations.Add(@class);
                }

                return(@class);
            }

            if (@class.IsIncomplete == !isComplete)
            {
                return(@class);
            }

            if (!createDecl)
            {
                return(null);
            }

            var newClass = CreateClass(name, isComplete);

            // Replace the incomplete declaration with the complete one.
            if (@class.IsIncomplete)
            {
                @class.CompleteDeclaration = newClass;
                Declarations[Declarations.IndexOf(@class)] = newClass;
            }

            return(newClass);
        }