示例#1
0
        public void SourceFileIDTest()
        {
            System.GC.Collect();
            System.GC.WaitForPendingFinalizers();

            CSourceFileID first          = new CSourceFileID();
            long          FileIDLowBound = first.SourceFileID;

            Assert.AreEqual(FileIDLowBound, first.SourceFileID);

            CSourceFileID second = new CSourceFileID();

            Assert.AreEqual(FileIDLowBound + 1, second.SourceFileID);

            CSourceFileID third = new CSourceFileID();

            Assert.AreEqual(FileIDLowBound + 2, third.SourceFileID);

            second = null;
            System.GC.Collect();
            System.GC.WaitForPendingFinalizers();

            CSourceFileID fourth = new CSourceFileID();

            Assert.AreEqual(FileIDLowBound + 1, fourth.SourceFileID);
        }
示例#2
0
        public void CSourceFileConstructorTest1()
        {
            CSourceFileID _FileID             = new CSourceFileID();
            string        FullPathAndFileName = "somefile.ext";
            Encoding      file_encoding       = Encoding.GetEncoding(866);
            CCodeFragment _Content            = new CCodeFragment();
            CSourceFile   target = new CSourceFile(_FileID, FullPathAndFileName, file_encoding, _Content);

            Assert.IsNotNull(target);
        }
示例#3
0
        public void SourceFileIDTest()
        {
            CSourceFileID _FileID             = new CSourceFileID();
            string        FullPathAndFileName = "somefile.ext";
            Encoding      file_encoding       = Encoding.GetEncoding(866);
            CCodeFragment _Content            = new CCodeFragment();
            CSourceFile   target = new CSourceFile(_FileID, FullPathAndFileName, file_encoding, _Content);

            Assert.AreEqual(_FileID.SourceFileID, target.SourceFileID);
        }
示例#4
0
        private void IncreaseCountOfLines(string filename)
        {
            // Нам нужно реальное количество строк в файле!
            CSourceFileID            FileID     = new CSourceFileID();
            CTokenizerParms          args       = new CTokenizerParms(filename, FileID);
            ISourceFileContentLoader loader     = new CEntireRowSourceFileContentLoader(args);
            CCodeUnitsCollection     collection = loader.Load();

            Interlocked.Add(ref m_CountOfLines, collection.Size());
        }
示例#5
0
        public CTokenizerParms(string _Path, Encoding _Encoding, CSourceFileID FileID)
        {
            if (!string.IsNullOrEmpty(_Path))
            {
                m_Path = _Path;
            }
            else
            {
                throw new ArgumentNullException("_Path");
            }

            m_Encoding = _Encoding;
            m_FileID   = FileID;
        }
示例#6
0
        /// <summary>
        /// Загрузить один файл
        /// </summary>
        /// <param name="filename"></param>
        protected override void LoadOneFile(string filename)
        {
            CSourceFileID            FileID = new CSourceFileID();
            CTokenizerParms          parms  = new CTokenizerParms(filename, LoadFilesOptions.FileEncoding, FileID);
            ISourceFileContentLoader loader = CSourceFileContentLoaderFactory.Create(parms, m_ext);
            CSourceFile source_file         = new CSourceFile(FileID, filename, LoadFilesOptions.FileEncoding, new CCodeFragment(loader.Load()));

            m_FilesCollection.IncreaseCountOfLinesInOriginFiles(source_file.Size());
            if (LoadFilesOptions.IsPreProcessingFile)
            {
                source_file.Content.Content = new CSimpleCodePreProcessingAlgorithm().PreProcessing(LoadFilesOptions.PreProcessingOptions, source_file.Content.Content);
            }
            m_FilesCollection.Add(source_file.SourceFileID, source_file);
            IncreaseCountOfLinesInModifiedFiles(source_file.Size());
        }
示例#7
0
 private void IncreaseCountOfTokens(string filename)
 {
     try
     {
         CSourceFileID            FileID     = new CSourceFileID();
         CTokenizerParms          args       = new CTokenizerParms(filename, FileID);
         ISourceFileContentLoader loader     = new CTokenSourceFileContentLoader(args, m_Extension);
         CCodeUnitsCollection     collection = loader.Load();
         Interlocked.Add(ref m_CountOfTokens, collection.Size());
     }
     catch
     {
         // Если поддержка токенизации отсутствует, то ничего не делаем
     }
 }
示例#8
0
 public CTokenizerParms(string _Path, CSourceFileID FileID)
     : this(_Path, Encoding.GetEncoding(1251), FileID)
 {
 }