Появилась довольно смелая идея. Написать новый движок для создания текстовых квестов. Что-то наподобие URQ. Но более простой и удобный. Опыт в создание интерпритаторов уже есть. Кое-какие нароботки есть, но до готовой версии далеко... Так вот главная проблема - это решение, как будет выглядеть сам язык. Если кто-нибудь хочет помочь советом, пишите письма.
Я тут немного подумал, над тем как будет выглядеть программа и пришёл к такому варианту(просто пример):
//#TQ_PROJECT /* Пример многострочного комментария. Пример простейшей программы квеста. Автор: haM3r E-mail: bvlad36@bk.ru */ // Пример подключения дополнительной библиотеки. // Проект можно разбивать отдельные на файлы. #include "scene_1.tq"; #include "scene_2.tq"; #include "scene_3.tq"; /* Пример работы с #define. #define - автозамена текста. Довольно полезная вещь. Можно сказать #define "btn", "button"; и использовать во всей программе заместо button - btn. */ #define "btn", "button"; //———————————————————————- /* Пример локации. Локация должна начинаться со слова location или room и заканчиваться end. <main> - указывает на то, что с этой локации начинает работать программа. */ location [first_location] <main> // Устанавливаем цвет текста. textcolor 5; // Проиграть звуковой wav файл. play "sound.wav"; // Вывод сообщения на экран. print "Первая локацияn"; button room_1, "@Wкомната-1"; button room_2, "@Bкомната-2"; button room_3, "@Rкомната-3"; end; //———————————————————————- room [room_1] // Проигрывание звукового сигнала. beep; print "В комнате 1 вас убили!n", "Какая досада!n", "Попробуйте ещё раз.n"; // Заснуть на 1 секунду. sleep 1000; // Выход из программы. exit; end; procedure getkey print "Press any key..."; // Считывание клавиши. key = readkey; print "key = ", key; end; room [room_2] // Отчистка экрана. cls; // Вызов процедуры. call getkey; // Сохранение состояния программы. save; btn first_location, "Назад"; end; room [room_3] a = 10; b = "test"; print "This is" + b + "n"; :label_1 // Пример цикла. while (a > 0) { print a, "n" // Пример условного оператора. if (a == 3) { print "That's All!n"; break; } a = a - 1; } if (a > 0) goto label_1; exit; end;
Неактивен
Впринципе, именно по этому я предже чем начать разрабатывать движок хотел бы узнать мнение людей. А именно каким бы вы хотели его видеть? (По структуре написания программы, операторам и тд.) Но, я не хотел бы придти в итоге к какому-нибудь asm подобному языку. Смысл писать ещё одну аналогию нет. Цель другая - сделать принципиально новый движок.
Неактивен
Olegus t.Gl. написал:
Занимаюсь именно этим...
Главное — использование в синтаксисе русского языка. Касательно всего остального: ориентация на объекты, нетипизированные переменные, наличие у объектов (помимо свойств и методов) ещё и событий и т.п.
Ветка, посвящённая моим изысканиям: https://forum.ifiction.ru/viewtopic.php?id=467
Прочитал ветку. Задумался... Нужно подумать. А нельзя бы получить пример программы на e-mail? (желательно, что бы в ней было побольше кода)
Неактивен