mowascript
Version:
MowaScript language implementation
111 lines (84 loc) โข 2.47 kB
Markdown
[[๐ฒ 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