UNPKG

mowascript

Version:

MowaScript language implementation

111 lines (84 loc) โ€ข 2.47 kB
[[๐ŸŒฒ East Slavic](east/04_compiler.md) ยท [๐Ÿ‡บ๐Ÿ‡ธ English](en/04_compiler.md)] # โš™๏ธ Arhitektura kompilatora MowaJS Kompilator (ili transpajler) MowaJS konvertuje kod napisan na razumlivom slavjanskom jezyku v validny JavaScript. On poddrลพava mnogojezyฤny kljuฤe-slova, gibku konfiguraciju, transformaciju syntaksa i moลพe ispolzovati se kak CLI ili biblioteka. --- ## โš™๏ธ Etapy roboty kompilatora ```text โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Vhodnyj โ”‚ (.mowa kod) โ”‚ kod โ”‚ โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Lekser โ”‚ (raspoznava tokeny) โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Parser โ”‚ (strojit AST โ€” derevo) โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Translyator/Transformer โ”‚ (konvertuje AST v JS AST) โ””โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚ โ–ผ โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚ Generator โ”‚ (output .js fajla) โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ ``` --- Kompilator osnovuje se na slovnikah kljuฤe-slova: - Ukrajinsky (ua.js) - Belarusky (by.js) - Russky (ru.js) - Interslavjansky (isv.js) - i drugiโ€ฆ Vo vremi parsyvanja on sravnjava slova iz koda s izvestnymi slovnikami i avtomatiฤno mapuje jih na JS kljuฤe ili API-metody. ```json { "ako": "if", "poka": "while", "dodajKStroku": { "target": "concat", "type": "string" } } ``` --- ## ๐ŸŒณ Konstrukcija AST (Abstract Syntax Tree) MowaJS strojit AST-derevo so vnimanjem k perevodu: ```js ako (vik >= 18) { govori("Vzrastyj"); } ``` Transformuje se v: ```js if (vik >= 18) { console.log("Vzrastyj"); } ``` --- ## ๐Ÿ”„ Transformacija Glavne etapy: - Alias โ†’ JS keyword: `funkcija` โ†’ `function` - Metody โ†’ API: `govori()` โ†’ `console.log()` - Logika โ†’ simvoly: `i` โ†’ `&&`, `abo` โ†’ `||` - Podpora dialektov ฤerez slovnik --- ## ๐Ÿ’ก Vozmoลพnosti - โœ… Multisyntaks - โœ… Kastomny slovniki - โœ… CLI komandy: `mowa build`, `mowa run` - โณ Linting + syntax highlight (v razvitku) - โณ Playground (skoro) --- ## ๐Ÿ”ฎ Buduฤ‡nost - Linting osnovany na AST + sovety - Live-redaktor v brauzeri - Integracija s redaktory (VSCode, WebStorm) - Preprocessing ลกablonov - Podpora TypeScript tipov