コード例 #1
0
        public void CaseClosure()
        {
            int num5 = base.Edges().Count() - 1;

            for (int i = 0; i <= num5; i++)
            {
                NumberSet    setB       = new NumberSet(new int[0]);
                CharacterSet characters = base.Edges()[i].Characters;
                int          num6       = characters.Count() - 1;
                for (int j = 0; j <= num6; j++)
                {
                    int charCode = characters[j];
                    int num3     = UnicodeTable.ToLowerCase(charCode);
                    if (charCode != num3)
                    {
                        setB.Add(new int[] { num3 });
                    }
                    num3 = UnicodeTable.ToUpperCase(charCode);
                    if (charCode != num3)
                    {
                        setB.Add(new int[] { num3 });
                    }
                }
                characters.UnionWith(setB);
                characters = null;
            }
        }
コード例 #2
0
        public NumberSet UsedDefinedSets()
        {
            NumberSet set = new NumberSet(new int[0]);

            if (this.m_Type == SetType.Name)
            {
                int num = BuilderApp.UserDefinedSets.ItemIndex(this.m_Text);
                if (num != -1)
                {
                    set.Add(new int[] { num });
                }
            }
            return(set);
        }
コード例 #3
0
        /* Function: GetFileIDsThatDefineClassID
         * Returns the file IDs that contain topics which define the class ID.
         */
        public NumberSet GetFileIDsThatDefineClassID(int classID)
        {
            accessor.RequireAtLeast(Accessor.LockType.ReadOnly);

            NumberSet fileIDs = new NumberSet();

            using (SQLite.Query query = accessor.Connection.Query("SELECT FileID FROM Topics WHERE ClassID=? AND DefinesClass=1", classID))
            {
                while (query.Step())
                {
                    fileIDs.Add(query.IntColumn(0));
                }
            }

            return(fileIDs);
        }
コード例 #4
0
        /* Function: GetInfoOnClassParents
         * Looks up the parents of the passed class ID and returns their class IDs and all the file IDs that define them.
         */
        public void GetInfoOnClassParents(int classID, out NumberSet parentClassIDs, out NumberSet parentClassFileIDs)
        {
            accessor.RequireAtLeast(Accessor.LockType.ReadOnly);

            parentClassIDs     = new NumberSet();
            parentClassFileIDs = new NumberSet();

            using (SQLite.Query query = accessor.Connection.Query("SELECT TargetClassID FROM Links " +
                                                                  "WHERE ClassID=? AND Type=? AND TargetClassID != 0",
                                                                  classID, (int)Links.LinkType.ClassParent))
            {
                while (query.Step())
                {
                    parentClassIDs.Add(query.IntColumn(0));
                }
            }

            if (parentClassIDs.IsEmpty)
            {
                return;
            }

            IDObjects.NumberSet remainingParentClassIDs = parentClassIDs;

            do
            {
                IDObjects.NumberSet temp;
                string queryText = "SELECT FileID FROM Topics WHERE " + Accessor.ColumnIsInNumberSetExpression("ClassID", remainingParentClassIDs, out temp) + " AND DefinesClass=1";
                remainingParentClassIDs = temp;

                using (SQLite.Query query = accessor.Connection.Query(queryText))
                {
                    while (query.Step())
                    {
                        parentClassFileIDs.Add(query.IntColumn(0));
                    }
                }
            }while (remainingParentClassIDs != null);
        }
コード例 #5
0
        public void MappingClosure(BuilderApp.CharMappingMode Mapping)
        {
            int num5 = base.Edges().Count() - 1;

            for (int i = 0; i <= num5; i++)
            {
                NumberSet    setB       = new NumberSet(new int[0]);
                CharacterSet characters = base.Edges()[i].Characters;
                int          num6       = characters.Count() - 1;
                for (int j = 0; j <= num6; j++)
                {
                    int charCode = characters[j];
                    int num3     = UnicodeTable.ToWin1252(charCode);
                    if (charCode != num3)
                    {
                        setB.Add(new int[] { num3 });
                    }
                }
                characters.UnionWith(setB);
                characters = null;
            }
        }
コード例 #6
0
        /* Function: GetInfoOnClassParents
         * Looks up the parents of the passed class ID and returns their class IDs and all the file IDs that define them.
         */
        public void GetInfoOnClassParents(int classID, out NumberSet parentClassIDs, out NumberSet parentClassFileIDs)
        {
            accessor.RequireAtLeast(Accessor.LockType.ReadOnly);

            parentClassIDs     = new NumberSet();
            parentClassFileIDs = new NumberSet();

            using (SQLite.Query query = accessor.Connection.Query("SELECT TargetClassID FROM Links " +
                                                                  "WHERE ClassID=? AND Type=? AND TargetClassID != 0",
                                                                  classID, (int)Links.LinkType.ClassParent))
            {
                while (query.Step())
                {
                    parentClassIDs.Add(query.IntColumn(0));
                }
            }

            if (parentClassIDs.IsEmpty)
            {
                return;
            }

            StringBuilder queryText   = new StringBuilder("SELECT FileID FROM Topics WHERE (");
            List <object> queryParams = new List <object>();

            Accessor.AppendWhereClause_ColumnIsInNumberSet("ClassID", parentClassIDs, queryText, queryParams);

            queryText.Append(") AND DefinesClass=1");

            using (SQLite.Query query = accessor.Connection.Query(queryText.ToString(), queryParams.ToArray()))
            {
                while (query.Step())
                {
                    parentClassFileIDs.Add(query.IntColumn(0));
                }
            }
        }