PTS Script Editor

gattsu

Выдающийся
Проверенный
Победитель в номинации 2018
Победитель в номинации 2017
За веру и верность форуму
За заслуги перед форумом
Преподаватель
Сообщения
165
Розыгрыши
0
Репутация
1 457
Реакции
293
Баллы
1 393
NAS(Npc Ai Script) - аббревиатура языка
NASC(Npc Ai Script Compiler) - аббревиатура компилятора и файлов генерирующих компилятором

Играюсь с разработкой редактора скриптов для птс.
На данный момент уже, есть редактор для nas.
Разрабатываю компилятор и декомпилятор.

Особенности
Возможно расширять типы и классы без переписывания компилятора, через файл деклараций(как в typescript).
Если в эксте, есть дополнительный метод или поле, простым изменением файла деклараций соответствующего типа,
можно будет использовать в коде.

Планируется поддержка c4 и gf


У языка есть поддержка таких конструкций
- декларативного файла
- for
- while
- if-else
- switch-case-default
- Арифметические выражение + - / * %
- Бинарные выражение ^ & |
- Логические выражение && || !
- Выражение сравнения != == < > <= >=
- Конкатенация строк +

Стараюсь делать совместимый синтаксис, который уже используется везде

Возможно думаю добавить
- enum как литерал (на этапе компиляции будут подставляться значения, и в выражениях вести себя соответственно типу)
C++:
enum A : int {
  type_a = 0,
  type_b = 0
}
enum B : string {
  type_a = "string",
  type_b = "string"
}
- const как литерал(на этапе компиляции будут подставляться значения, и в выражениях вести себя соответственно типу)
C++:
const constInt = 000;
const constString = "test";
- инлайн функции
- бинарный сдвиг
- pch литерал
... остального пожеланию

Думаю делать как веб редактор, планирую сделать бета тестирование по приглашению


 

Вложения

  • photo_2019-04-11_14-33-07.jpg
    photo_2019-04-11_14-33-07.jpg
    119,9 КБ · Просмотры: 300
Последнее редактирование:

Реализовал компилятор

TODO
- Реализовать подержу parameter и property
- Сделать для property тип конструктор
- Switch-Case
- Инкремент и декремент, префиксный и постфиксный
- Добавить подержу литерала-ссылку '@' из pch файлов
- Генерация variable_begin
- Объявление и использование локальных переменных

Из разряда оно тебе надо
Можно расширить набор команд и добавить возможность локальных переменных для handler через store/load
 
Компилятор поддерживает (или будет поддерживать) все оригинальные типы? Например, SkillQuestList (который никогда не встречался в паблике, но был там с С1, и стал использоваться в поздних хрониках), RedirectList, и тд?

TODO - это к компилятору или к Редактору?
 
Компилятор поддерживает (или будет поддерживать) все оригинальные типы? Например, SkillQuestList (который никогда не встречался в паблике, но был там с С1, и стал использоваться в поздних хрониках), RedirectList, и тд?

TODO - это к компилятору или к Редактору?
да, все встроенные типы полностью будут поддерживаться.

Там и компилятор и IDE
 
Как успехи? далеко зашли? Когда бета-тестирование?
 
Есть какие новости по компилятору? :)
 
still waiting
 
Софт актуальный?
Подходит для С4? Хочу запустить сервер для внутренней сети.
 

Похожие темы

Назад
Сверху Снизу