⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.cs

📁 c#源代码
💻 CS
字号:
// project created on 09.08.2003 at 10:16
using System;
using System.Collections.Specialized;
using System.IO;
using System.Windows.Forms;
using System.Collections;
using System.CodeDom;
using System.CodeDom.Compiler;
using Microsoft.CSharp;

using ICSharpCode.SharpRefactory.PrettyPrinter;
using ICSharpCode.SharpRefactory.Parser;

class MainClass
{
	public static StringCollection SearchDirectory(string directory, string filemask)
	{
		return SearchDirectory(directory, filemask, true);
	}
	
	public static StringCollection SearchDirectory(string directory, string filemask, bool searchSubdirectories)
	{
		StringCollection collection = new StringCollection();
		SearchDirectory(directory, filemask, collection, searchSubdirectories);
		return collection;
	}
	
	/// <summary>
	/// Finds all files which are valid to the mask <code>filemask</code> in the path
	/// <code>directory</code> and all subdirectories (if searchSubdirectories
	/// is true. The found files are added to the StringCollection 
	/// <code>collection</code>.
	/// </summary>
	static void SearchDirectory(string directory, string filemask, StringCollection collection, bool searchSubdirectories)
	{
		try {
			string[] file = Directory.GetFiles(directory, filemask);
			foreach (string f in file) {
				collection.Add(f);
			}
			
			if (searchSubdirectories) {
				string[] dir = Directory.GetDirectories(directory);
				foreach (string d in dir) {
					SearchDirectory(d, filemask, collection, searchSubdirectories);
				}
			}
		} catch (Exception) {
		}
	}
	
	static void PrettyPrintDirectories()
	{
		StringCollection files = SearchDirectory("C:\\b", "*.cs");
		foreach (string fileName in files) {
			Parser p = new Parser();
			p.Parse(new Lexer(new FileReader(fileName)));
			if (p.Errors.count == 0) {
				StreamReader sr = File.OpenText(fileName);
				string content = sr.ReadToEnd();
				sr.Close();
				PrettyPrintVisitor ppv = new PrettyPrintVisitor(content);
				ppv.Visit(p.compilationUnit, null);
				
				StreamWriter sw = new StreamWriter(fileName);
				sw.Write(ppv.Text);
				sw.Close();
				
			} else {
				Console.Write(" Source code errors:");
				Console.WriteLine(p.Errors.ErrorOutput);
			}
		}
		Console.ReadLine();
	}

	public static void Main (string[] args)
	{
//		PrettyPrintDirectories();
//		Parser p = new Parser();
//		string fileName = "C:\\a.cs";
//		Console.Write("Converting : " + fileName);
//		p.Parse(new Lexer(new FileReader(fileName)));
//		if (p.Errors.count == 0) {
//			StreamReader sr = File.OpenText(fileName);
//			string content = sr.ReadToEnd();
//			sr.Close();
//			PrettyPrintVisitor ppv = new PrettyPrintVisitor(content);
//			ppv.PrettyPrintOptions.IndentSize = 6;
//			ppv.Visit(p.compilationUnit, null);
//			
//			Console.WriteLine(ppv.Text);
//			
//			Console.WriteLine(" done.");
//		} else {
//			Console.Write(" Source code errors:");
//			Console.WriteLine(p.Errors.ErrorOutput);
//		}
		
		string searchPath = Path.GetFullPath(Application.StartupPath + @"\..\src");
			StringCollection files = SearchDirectory(searchPath, "*.cs", true);
			ArrayList defs = new ArrayList();
			long oldSet = Environment.WorkingSet;
			
			DateTime start = DateTime.Now;
			foreach (string str in files) {
				Lexer lexer = new Lexer(new FileReader(str));
				Parser parser = new Parser();
				parser.Parse(lexer);
			}
			Console.WriteLine("Time: " + (DateTime.Now - start) + " memory : " + (Environment.WorkingSet - oldSet));
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -