@vanzxy/nusa
v1.0.0
Published
Nusa — bahasa pemrograman Nusantara: kode berbahasa Indonesia yang dikompilasi ke JavaScript
Maintainers
Readme
Nusa 🇮🇩
Nusa adalah bahasa pemrograman Nusantara, yaitu bahasa pemrograman berbahasa Indonesia. Kode ditulis dengan kata kunci Indonesia lalu dikompilasi ke JavaScript dan dijalankan di Node.js.
tetapan nama = "Dunia"
fungsi sapa(orang) {
kembalikan `Halo, ${orang}!`
}
tulis(sapa(nama))
untuk (variabel i = 1; i <= 3; i++) {
jika (i % 2 === 0) {
tulis(i, "genap")
} lainnya {
tulis(i, "ganjil")
}
}Instalasi
npm install -g @vanzxy/nusaButuh Node.js 20.6 atau lebih baru.
Pemakaian
nusa program.nusa # jalankan
nusa bangun program.nusa # hasilkan program.js
nusa bangun a.nusa -o out.js # tentukan nama keluaran
nusa --versi
nusantara program.nusa # alias perintah `nusa`Tanpa instal global:
npx @vanzxy/nusa program.nusaBisa juga lewat Node langsung:
node --import @vanzxy/nusa/register program.nusaBerkas .nusa bisa saling impor:
impor { kuadrat } dari "./pustaka.nusa"Pemakaian sebagai pustaka
import { transpile } from '@vanzxy/nusa';
console.log(transpile('tetapan x = benar'));
// const x = trueDaftar kata kunci
| Nusa | JavaScript | Nusa | JavaScript |
|---|---|---|---|
| variabel | let | tetapan | const |
| peubah | var | fungsi | function |
| kelas | class | jika | if |
| lainnya | else | untuk | for |
| selama | while | lakukan | do |
| hentikan | break | lanjut | continue |
| kembalikan | return | pilih | switch |
| kasus | case | bawaan | default |
| coba | try | tangkap | catch |
| akhirnya | finally | lempar | throw |
| baru | new | ini | this |
| induk | super | perluas | extends |
| statis | static | ambil | get |
| atur | set | konstruktor | constructor |
| jenis | typeof | instansi | instanceof |
| hapus | delete | dalam | in |
| pada | of | hampa | void |
| hasilkan | yield | impor | import |
| ekspor | export | dari | from |
| sebagai | as | asinkron | async |
| tunggu | await | benar | true |
| salah | false | kosong | null |
| takdidefinisi | undefined | BukanAngka | NaN |
| TakHingga | Infinity | tulis | console.log |
| tulisGalat | console.error | tulisPeringatan | console.warn |
Objek & fungsi bawaan: Matematika (Math), Tanggal (Date), Larik (Array), Objek (Object), Teks (String), Angka (Number), Janji (Promise), Peta (Map), Himpunan (Set), Galat (Error), uraiAngka (parseInt), uraiDesimal (parseFloat), waktuTunggu (setTimeout), selangWaktu (setInterval).
Contoh for...of: untuk (tetapan x pada daftar) { ... }
Cara kerja & batasan
- Nusa adalah transpiler: setiap kata kunci diganti, sementara string, komentar, template literal, dan regex dibiarkan utuh.
- Jumlah baris dipertahankan, jadi nomor baris pada pesan galat tetap cocok dengan kode Nusa.
- Nama method bawaan JavaScript (
push,map,length, dst.) tetap berbahasa Inggris. - Kata kunci Nusa tidak bisa dipakai sebagai nama variabel/fungsi/method (mis.
tulis). Sebagai nama properti (obj.tulis,{ tulis: 1 }) tetap aman. - Kata JavaScript asli (
let,if, dst.) tetap berfungsi, jadi dua gaya bisa dicampur. - Pesan galat dari Node.js masih berbahasa Inggris.
Pengembangan
npm testLisensi
MIT
Banner
Banner Nusa tampil saat npm install dan saat menjalankan nusa tanpa argumen (atau nusa --bantuan). Banner tidak tampil saat menjalankan program .nusa, jadi keluaran programmu tetap bersih.
Matikan dengan (VANZXY_BANNER=0 juga berfungsi):
NUSA_BANNER=0 nusaDi terminal asli banner tampil sebagai kotak berwarna. Di log CI atau output yang di-pipe, banner jadi teks polos. NO_COLOR juga dihormati.
