mavka-ukr / jejalyk

Компілятор Мавки в JavaScript
1 stars 0 forks source link

Джеджалик 1.0 #15

Open kohutd opened 5 months ago

kohutd commented 5 months ago

Джеджалик 1.0

Цей документ описує функціонал Джеджалика, що має бути втілений у першій випуск-версії.

Компіляція в ES-модулі

Джеджалик повинен компілюватись в ES-модулі замість пакування в один файл. Такий підхід дозволить легко інтегрувати JS-код та код Джеджалика. В результаті Джеджалик можна буде легко використовувати з NPM-пакетами, бібліотеками та фреймворками.

Приклад:

взяти а.б.в

дія привіт()
  друк("Привіт з Джеджалика!")
кінець

дати привіт
import в from "./а/б/в.js";

var привіт = function() {
  друк("Привіт з Джеджалика!")
};

export default {
  привіт
};

Підтримка NPM-пакетів

Джеджалик повинен мати підтримку NPM-пакетів. Це єдині пакети, які повинні підтримуватись. Паки з пак.укр працюватимуть лише для Мавки з МаМа.

Приклад:

npm i express
взяти нпм express як експрес

апка = експрес()

апка.get(дія(запит, відповідь)
  відповідь.res("Привіт від Лесі!")
кінець)
import express from "express";
var експрес = express;

var апка = експрес();

апка.get(function(запит, відповідь) {
  відповідь.res("Привіт від Лесі!");
});

Підтримка розширень .дж

Це дозволить розділити основну Мавку на МаМа від Джеджалика, адже вони не можуть використовувати один одного.

Використання оновленого парсера

Наявний в Джеджалику парсер застарілий. Необхідно використовувати новий з https://github.com/mavka-ukr/parser

Втілення Теорії Мавки

Джеджалик повинен втілювати теорію Мавки, тобто субʼєкти, дії, списки, словники і тд. Джеджалик не повинен втілювати Бібліотеку Мавки, адже можна використовувати наявні NPM-пакети.

Джеджалик повинен в повній мірі втілювати типизацію Мавки, включаючи шаблони. Джеджалик не повинен мати перевірку типів під час виконання.

Зрозумілі помилки компіляції

Джеджалик повинен виводини достатньо інформації під час помилки компіляції. Це включає локацію у файлі (шлях до файлу, рядок, колонка), кодифіковану назву помилки та текст помилки. Джеджалик повинен виводити таку ж інформацію під час помилки парсингу.