예제 #1
0
        public void ParseTest()
        {
            var detector = new SingleAndMultiLineModifiedBlockDetector("修正行", "▼", "▲");
            var reader   = new TextFileReaderImpl();
            var parser   = new ModificationParser(detector);
            var m        = parser.Parse(reader.Read("modification.cpp"));

            Assert.IsTrue(m.RangeList.Count == 4);
            Assert.IsTrue(m.RangeList.Any(x => x.Begin == 6 & x.End == 8));
            Assert.IsTrue(m.RangeList.Any(x => x.Begin == 11 & x.End == 41));
            Assert.IsTrue(m.RangeList.Any(x => x.Begin == 51 & x.End == 51));
            Assert.IsTrue(m.RangeList.Any(x => x.Begin == 54 & x.End == 54));
        }
예제 #2
0
            public void Execute()
            {
                var service = new ParseSourceCodeService(
                    new TextFileReaderImpl(),
                    output,
                    new ParserFactoryImpl());

                if (!System.IO.Directory.Exists(directoryPath))
                {
                    throw new Exception("not found directory.");
                }

                var paths = System.IO.Directory.GetFiles(directoryPath, "*", System.IO.SearchOption.AllDirectories);

                IModifiedBlockDetector detector = null;

                if (keyword != null)
                {
                    detector = new SingleAndMultiLineModifiedBlockDetector(keyword, "▼", "▲");
                }

                service.OutputFunctions(paths, detector);
            }