Пример #1
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="LanguageID"></param>
 /// <param name="load_files_options"></param>
 public CSyntacticUnitsInfoProvider(LANGUAGES LanguageID, CLoadFilesOptions load_files_options)
     : base(load_files_options)
 {
     m_Extension             = CAvailableExtentions.GetExtention(LanguageID);
     m_SynUnitsCollection    = new CSyntacticUnitsCollection();
     m_CountOfSyntacticUnits = 0;
 }
Пример #2
0
        /// <summary>
        /// Получить набор синтаксических единиц для заданного файла
        /// </summary>
        /// <param name="filename"></param>
        protected override void LoadOneFile(string filename)
        {
            CTokenizerParms           args = new CTokenizerParms(filename, m_LoadOptions.FileEncoding, new CSourceFileID());
            CSyntacticUnitsCollection current_collection = m_Extension.Syntacticize(args);

            m_CountOfSyntacticUnits += current_collection.Size();
            //Interlocked.Add(ref m_CountOfSyntacticUnits, current_collection.Size());
            m_SynUnitsCollection.AddRange(current_collection);
        }
Пример #3
0
 /// <summary>
 /// Получить синтаксические характеристики кода
 /// </summary>
 /// <returns></returns>
 public virtual CSyntacticInfo Calculate()
 {
     m_SynUnitsCollection    = new CSyntacticUnitsCollection();
     m_CountOfSyntacticUnits = 0;
     ProcessLoad();
     calc_metrics();
     save();
     return(info);
 }
Пример #4
0
        public void SyntacticizeTest2()
        {
            string filename = Path.GetFullPath("UnitTestSampleFile2.cs");

            Assert.IsTrue(File.Exists(filename));

            CCsICloneExtension        target = new CCsICloneExtension();
            CTokenizerParms           args   = new CTokenizerParms(filename, new CSourceFileID());
            CSyntacticUnitsCollection actual = target.Syntacticize(args);

            Assert.AreEqual(12, actual.Size());
            Assert.AreEqual(37, actual[0].Size());
        }
Пример #5
0
        /// <summary>
        /// Представить исходный код, содержащийся в файле, в виде набора синтаксических единиц
        /// </summary>
        /// <param name="args"></param>
        /// <returns></returns>
        public override CSyntacticUnitsCollection Syntacticize(CTokenizerParms args)
        {
            CSyntacticUnitsCollection syntactic_collection = new CSyntacticUnitsCollection();
            Parser            parser   = new Parser(new Scanner(args.GetPath()), string.Empty);
            CounterCollection counters = parser.Parse();

            if (parser.errors.count > 0)
            {
                //throw new System.Exception(args.GetPath() + " parse error");
            }
            else
            {
                SyntUnitCreator synt_creator = new SyntUnitCreator(args);
                foreach (MethodBlock mb in counters.MethodCounters)
                {
                    syntactic_collection.Add(synt_creator.FromMethodBlock(mb));
                }
            }
            return(syntactic_collection);
        }