Компилятор 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();
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 3.786 из 5
Похожие ответы