.NET 4.x Компиляция любых команд в EXE файл - C#

Узнай цену своей работы

Формулировка задачи:

у меня такая проблема, я пишу вобщем компилятор для своего языка (FASTER+) его пример load var1 = 4 load var1 = var 2 out 'Hello World!' = 1 out (var1 + var2) = 1 rdKey Я могу отслеживать любые строки и преобразовать их в код C# а вот в EXE файл не умею. Вопрос: КАК??? (Написаный код):
Листинг программы
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Linq;
  7. using System.Text;
  8. using System.Threading.Tasks;
  9. using System.Windows.Forms;
  10. using System.IO;
  11. namespace FCompiler
  12. {
  13. public partial class Form1 : Form
  14. {
  15. OpenFileDialog openDialog = new OpenFileDialog();
  16. SaveFileDialog saveDialog = new SaveFileDialog();
  17. string fileName;
  18. Random yourString = new Random();
  19. public Form1()
  20. {
  21. InitializeComponent();
  22. }
  23. private void button4_Click(object sender, EventArgs e)
  24. {
  25. MessageBox.Show("Aperture Science © FASTER+ IDE Compiler®");
  26. }
  27. private void button1_Click(object sender, EventArgs e)
  28. {
  29. // "New" function
  30. MessageBox.Show("WARNING! Unsaved files will be lost!");
  31. richTextBox1.Text = "";
  32. }
  33. private void button5_Click(object sender, EventArgs e)
  34. {
  35. // "Open" function
  36. openDialog.ShowDialog();
  37. string[] fileText = File.ReadAllLines(openDialog.FileName);
  38. // string fileTextOut = "";
  39. // fileTextOut = fileTextOut + fileText;
  40. // richTextBox1.Text = fileTextOut;
  41. }
  42. private void button2_Click(object sender, EventArgs e)
  43. {
  44. // "Save" function
  45. saveDialog.ShowDialog();
  46. File.WriteAllText(saveDialog.FileName, richTextBox1.Text, Encoding.Default);
  47. textBox1.Text = saveDialog.FileName;
  48. }
  49. private void Form1_activated(object sender, EventArgs e)
  50. {
  51. // Когда форма активирукется исполяются команды:
  52. openDialog.Filter = "FASTER+ Files (*.fp)|*.fp|FASTER.NET Files (*.fpnet)|*.fpnet|All files (*.*)|*.*";
  53. openDialog.Title = "Open FASTER+ Programs";
  54. saveDialog.Filter = "FASTER+ Files (*.fp)|*.fp|FASTER.NET Files (*.fpnet)|*.fpnet|All files (*.*)|*.*";
  55. saveDialog.Title = "Save FASTER+ Programs";
  56. }
  57. private void button3_Click(object sender, EventArgs e)
  58. {
  59. // "Compile" function
  60. string path = @textBox1.Text;
  61. StreamReader reader = new StreamReader(path);
  62. string text = reader.ReadToEnd();
  63. string[] lines = text.Split('\n');
  64. string line = lines[0]; //читаем 1-ю строку
  65. compiling: if (line == "out '" + yourString + "' = 1") {
  66. Console.WriteLine(yourString);
  67. line = lines[+1];
  68. goto compiling;
  69. }
  70. if (line == "out '" + yourString + "' = 0")
  71. {
  72. Console.Write(yourString);
  73. line = lines[+1];
  74. goto compiling;
  75. }
  76. if (line == "rdKey")
  77. {
  78. Console.ReadKey();
  79. }
  80. }
  81. }
  82. }

Решение задачи: «.NET 4.x Компиляция любых команд в EXE файл»

textual
Листинг программы
  1. parameters.ReferencedAssemblies.Add("System.Core.dll");
  2. parameters.ReferencedAssemblies.Add("System.dll");

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


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

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

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы