NAS(Npc Ai Script) - аббревиатура языка
NASC(Npc Ai Script Compiler) - аббревиатура компилятора и файлов генерирующих компилятором
Играюсь с разработкой редактора скриптов для птс.
На данный момент уже, есть редактор для nas.
Разрабатываю компилятор и декомпилятор.
Особенности
Возможно расширять типы и классы без переписывания компилятора, через файл деклараций(как в typescript).
Если в эксте, есть дополнительный метод или поле, простым изменением файла деклараций соответствующего типа,
можно будет использовать в коде.
Планируется поддержка c4 и gf
У языка есть поддержка таких конструкций
- декларативного файла
- for
- while
- if-else
- switch-case-default
- Арифметические выражение + - / * %
- Бинарные выражение ^ & |
- Логические выражение && || !
- Выражение сравнения != == < > <= >=
- Конкатенация строк +
Стараюсь делать совместимый синтаксис, который уже используется везде
Возможно думаю добавить
- enum как литерал (на этапе компиляции будут подставляться значения, и в выражениях вести себя соответственно типу)
- const как литерал(на этапе компиляции будут подставляться значения, и в выражениях вести себя соответственно типу)
- инлайн функции
- бинарный сдвиг
- pch литерал
... остального пожеланию
Думаю делать как веб редактор, планирую сделать бета тестирование по приглашению
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"
}
C++:
const constInt = 000;
const constString = "test";
- бинарный сдвиг
- pch литерал
... остального пожеланию
Думаю делать как веб редактор, планирую сделать бета тестирование по приглашению
Вложения
Последнее редактирование: