- Program Description
- How to Run Program
- Implementation Screenshots
- Team Members
- Workload Distributions
- Folders and Files Description
- Extras
Dalam proses pembuatan program dari sebuah bahasa menjadi instruksi yang dapat dieksekusi oleh mesin, terdapat pemeriksaan sintaks bahasa atau parsing yang dibuat oleh programmer untuk memastikan program dapat dieksekusi tanpa menghasilkan error. Parsing ini bertujuan untuk memastikan instruksi yang dibuat oleh programmer mengikuti aturan yang sudah ditentukan oleh bahasa tersebut. Baik bahasa berjenis interpreter maupun compiler, keduanya pasti melakukan pemeriksaan sintaks. Perbedaannya terletak pada apa yang dilakukan setelah proses pemeriksaan (kompilasi/compile) tersebut selesai dilakukan.
- Clone this repository
$ git clone https://github.com/NicholasLiem/IF2124_TugasBesar_ParserNodeJs.git
- Change the directory to the location where the main program is stored
$ cd IF2124_TugasBesar_ParserNodeJs
- Run the main program
$ python main.py
Screenshot contoh source code yang valid pada JavaScript
Screenshot hasil output true pada program
Screenshot contoh source code yang tidak valid pada JavaScript
Screenshot hasil output false pada program
- Juan Christopher Santoso - 13521116
- Nicholas Liem - 13521135
- Nathania Calista Djunaedi - 13521139
NIM | Nama | Tugas |
---|---|---|
13521116 | Juan Christopher Santoso | Grammar, Regex, CYK, Lexer, dan Laporan |
13521135 | Nicholas Liem | CYK, Finite Automata, Lexer, dan Laporan |
13521139 | Nathania Calista Djunaedi | Grammar, Regex, CNF, Bonus, dan Laporan |
- Folder Test
Berisikan segala file .js yang ingin dites oleh program parser. - File main.py
Berisikan program utama yang menggabungkan segala fungsi dan algoritma yang telah dibuat. - File rules.py
Berisikan 'aturan' dalam pembacaan file .js menggunakan regex (regular expression). - File FA.py
Berisikan file untuk melakukan pengecekan apakah nama variabel dan penulisan ekspresi telah benar menggunakan FA (finite automata). - File grammar_cfg.txt
Berisikan aturan yang menjadi grammar dasar bagi syntax .js yang akan dites - File grammar_reader.py
Berisikan algoritma untuk mengubah token yang telah dibaca menggunakan rules.py menjadi CNF (Chomsky Normal Form) berdasarkan grammar pada file grammar_cfg.txt. - File cnf.txt
Berisikan aturan cnf yang telah dibuat menggunakan algoritma pada file grammar_reader.py - File cyk.py
Berisikan file yang mengandung algoritma untuk membaca CFG (Context Free Grammar) berdasarkan CNF yang telah dibuat. - Folder assets
Berisikan screenshots untuk ditampilkan pada README.