1) Эксперементальная программа для тестирования комманд.

Здравствуйте!

Я - лидер стартапа под названием Blue T-Shirt lab. И одним из наших проектов - это язык программирования Magnet. Он требует многих доработок и имеет всего 12 комманд.

За две статьи мы сделаем:

  1. Эксперементальную программу для тестирования комманд.

  2. Программу, которая будет запускать код из txt-файла.

Создаём новый проект: выбираем папку, открываем терминал, пишем dotnet new console, открываем файл Program.cs. И перед нами такой код:

Console.WriteLine("Hello, World!");

У вас возможно так же будут комментарии, но я их зарание удалил. Удаляем и эту строку.

Для начала нужно создать список tokenList, который будет хранить название комманд. Пока что будет одна комманда - output().

string[] tokenList = {

"output" //Важно написать без ().

};

Далее создаём переменную code, которая будет хранить пока что ничего:

string code = "";

И сейчас начнётся...

Создаём функцию read() и в ней присвоим значение переменной code ввод комманды:

void read(){

code = Console.ReadLine();

}

Создаём конструкцию if, которая будет проверять наличие переменной code на элемент списка tokenList, созданный ранее.

if (code.Contains(tokenList[0]) == true) {

}

А внутри квадратных скобок выводим на экран то, что записано в скобках нашей функции output():

string output = code.Split('(').Last(); //Обрезаем output( .

output = output.Substring(0, output.Length-1); //Обрезаем последнюю скобку в конце.

Console.WriteLine(output); //Выводим.

Выходим за квадратные скобки функции read().

Чтобы у нас консоль не пропадала после вывода, сделаем бесконечный ввод:

while(true){

Console.Write(">>> ");

read(); //вызов функции.

}

Полный код:

string[] tokenList = {

"output" //Важно написать без ().

};

string code = "";

void read(){

code = Console.ReadLine();

if (code.Contains(tokenList[0]) == true) {

string output = code.Split('(').Last(); //Обрезаем output( .

output = output.Substring(0, output.Length-1); //Обрезаем последнюю скобку в конце.

Console.WriteLine(output); //Выводим.

}

}

while(true){

Console.Write(">>> ");

read();

}

Это всё, пока что. Мы создали одну комманду в нашем языке, можете его дальше дополнить. Но в этой статье мы его начали. Как я уже говорил будет 2-ая часть этой темы. До свидания!