Source Code ini dibuat oleh kami, Kelompok LSN, untuk memenuhi Tugas Besar Teori Bahasa Formal dan Otomata yaitu mengimplementasikan Parser Syntax bahasa Javascript dengan Algoritma CYK (Cocke-Younger-Kasami)
| NIM | Nama |
|---|---|
| 13521108 | Michael Leon Putra Widhi |
| 13521168 | Satria Octavianus Nababan |
| 13521172 | Nathan Tenka |
Pada Tugas Besar kali ini, program yang kami buat dapat digunakan untuk :
- Menerima input berupa file eksternal berisi string yang merupakan kode sebuah program JavaScript (Node.js)
- Melakukan evaluasi sintaks dengan CFG
- Melakukan evaluasi nama-nama variabel dan operasi yang ada dengan FA
- Memberikan keluaran hasil evaluasi program antara “Accepted” jika input diterima atau “Syntax Error” jika input tidak diterima
- [BONUS] Memberi tahu letak dan detail kesalahan syntax jika ada
.
├─── doc
├─── test
│ ├─── functionAcc.js
│ ├─── functionReject1.js
│ ├─── functionReject2.js
│ ├─── ifAcc.js
│ ├─── ifReject.js
│ ├─── inputAcc.js
│ ├─── inputReject.js
│ ├─── loopAcc.js
│ ├─── loopReject.js
│ ├─── switchAcc.js
│ ├─── switchReject.js
│ ├─── testProgAsli.js
│ ├─── throwDeleteAcc.js
│ ├─── throwDeleteReject.js
│ ├─── tryCatchTestAcc.js
│ ├─── tryCatchTestReject.js
│ ├─── variablesReject.js
│ ├─── varLetConstAcc.js
│ └─── varLetConstReject.js
├─── CFG.txt
├─── CNF.txt
├─── Converter.py
├─── CYK.py
├─── FA.py
├─── LexerGrammar.py
├─── main.py
└─── README.md- Pastikan Python 3 versi terbaru sudah terpasang pada mesin eksekusi (Anda dapat mengecek versi Python 3 dengan menjalankan command
python --versionpada command prompt). - Jalankan run pada
interface.py. - Jika berhasil dikompilasi, maka akan muncul tampilan interface.
- Masukkan path file yang ingin diparsing, misalkan path untuk file yang diterima pada Spesifikasi Tugas Besar adalah
test/functionAcc.js- Tunggu hasil verdict.
Program akan menampilkan "Accepted" berwarna hijau jika file javascript yang dimasukkan sesuai dengan aturan syntax yang benar dan menampilkan "Syntax Error" berwarna kuning jika tidak sesuai dengan aturan syntax yang benar, lengkap dengan letak dan detail line kesalahan syntax berada.