Mengenal Parser
Untuk membiasakan memprogram dengan Rust, aku ingin langsung terjun untuk membuat suatu program yang mempunyai tujuan konkrit. Umumnya bagi software engineer masa kini, program itu berupa service web. Contoh lainnya, banyak orang menggunakan Rust untuk implementasi ulang command line populer. Kalau seleraku, aku ingin membuat parser terutama untuk SQL karena itu sesuatu yang dekat dengan pekerjaanku sehari-hari dan aku belum terlalu paham soal parser. Ada satu library yang sepertinya cukup populer untuk membuat parser yaitu nom. Mungkin mengambil inspirasi dari ahli bahasa terkemuka Noam Chomsky.
Parser cukup penting perannya dalam software engineering. Parser mengubah rangkaian teks menjadi struktur yang dapat dimengerti oleh komputer. Untuk mengerti bahwa teks punya struktur tertentu, kita harus menulis sebuah aturan atau grammar. Ada context-free grammar, ada parsing expression grammar, dan masih banyak jenis grammar lainnya. Cara parsing bisa juga menggunakan regular expression. Langkah pertama untuk membuat parser biasanya adalah dengan menulis sebuah grammar yang utuh. Dari sebuah grammar ini kita mengubahnya dengan bantuan sebuah penerjemah menjadi kode. Kode inilah parser kita.
Ketika menggunakan nom, kita tidak langsung menulis sebuah grammar yang utuh. Kita menulis potongan-potongan grammar dan ini langsung kita tulis dalam kode Rust. Potongan grammar kita kombinasikan dengan teknik parser combinator untuk membentuk sebuah parser yang utuh.
Seperti itulah yang aku pahami soal parser ini. Aku akan mencoba menulis parser untuk SQL terutama sintaks SQL yang dipahami oleh BigQuery dan DBT. Sampai jumpa lagi.