Распознавание в тексте комментариев и кода программы - C#
Формулировка задачи:
Добрый день. Иммется такая задача. Нужно написать программу, которая будет считывать файл, распозновать комментарии и код. К примеру есть такой файл:
В конечном итоге программа должна выводить в консоль что-то типо этого:
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace rowscan { // Начало программы class Program { static void Main(string[] args) { Console.WriteLine("Это строчка 1"); /*************/ Console.WriteLine("Это строчка 2"); Console.WriteLine("А между ними 2 комментария"); } } }
Строки кода: 1, 2, 3, 4, 6, 7, 9, 10, 11, 12, 13, 15, 16, 17, 18
Строки комментариев: 8, 14
Решение задачи: «Распознавание в тексте комментариев и кода программы»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using ICSharpCode.NRefactory.CSharp; class Program { static IEnumerable<T> GetNodes<T>(IEnumerable<AstNode> nodes) where T: AstNode { foreach(var node in nodes) { if (node is T) yield return (T)node; if (node.Children.Count() > 0) foreach (var subNode in GetNodes<T>(node.Children)) yield return subNode; } } static void Main(string[] args) { CSharpParser parser = new CSharpParser(); var tree = parser.Parse(System.IO.File.OpenText("E:\\Program.cs")); var comments = GetNodes<Comment>(tree.Children); foreach (var comment in comments) Console.WriteLine("Start: {0} Finish: {1} Text: {2}", comment.StartLocation.Line, comment.EndLocation.Line, comment.GetText()); Console.ReadKey(true); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д