Компилятор c# на c#
Формулировка задачи:
Здравствуйте, возник спор с преподавателем можно ли написать компилятор c# на c# без использования библиотек на C, время работы компилятора не важно. Сама возможность. Желательно с указанием источника ответа. Спасибо
Решение задачи: «Компилятор c# на c#»
textual
Листинг программы
using System; using System.CodeDom.Compiler; using System.Collections.Generic; using Microsoft.CSharp; using System.IO; namespace ConsoleCompiler { internal class Program { private static void Main(string[] args) { string source = ""; try { using (StreamReader sr = new StreamReader(@"D:\foo.cs")) { string line; while ((line = sr.ReadLine()) != null) { source += line + "\n"; } } } catch (Exception e) { Console.WriteLine("Файл не может быть прочитан:"); Console.WriteLine(e.Message); } Console.WriteLine(source); // Настройки компиляции Dictionary<string, string> providerOptions = new Dictionary<string, string>(); providerOptions.Add("CompilerVersion", "v2.0"); CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions); CompilerParameters compilerParams = new CompilerParameters(); compilerParams.OutputAssembly = "D:\\Foo.EXE"; compilerParams.GenerateExecutable = true; // Компиляция CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source); // Выводим информацию об ошибках Console.WriteLine("Number of Errors: {0}", results.Errors.Count); foreach (CompilerError err in results.Errors) { Console.WriteLine("ERROR {0}", err.ErrorText); } Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д