1) Эксперементальная программа для тестирования комманд.
Здравствуйте!
Я - лидер стартапа под названием Blue T-Shirt lab. И одним из наших проектов - это язык программирования Magnet. Он требует многих доработок и имеет всего 12 комманд.
За две статьи мы сделаем:
Эксперементальную программу для тестирования комманд.
Программу, которая будет запускать код из 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-ая часть этой темы. До свидания!