Analisis leksikal: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
kTidak ada ringkasan suntingan
DamenaKo (bicara | kontrib)
k menghapus kata-kata yang berlebih pada kalimat pertama di paragraf pertama.
Baris 1:
'''Analisis leksikal''' (bahasa Inggris: ''lexical analysis'') adalah sebuah proses yang mendahului [[parsing]] sebuah rangkaian karakter. Ia menerima masukan serangkaian karakter (seperti dalam dokumen plain-text atau source code) dan menghasilkan deretan simbol yang masing-masing dinamakan '''token'''; proses parsing akan lebih mudah dilakukan bila inputnya sudah berupa token.
 
Analisis leksikal terdiri dari dua tahap. Tahap pertama adalah '''pemindaian''' ('''''scanning'''''); scanner biasanya dibuat berdasarkan prinsip Finite State Machine ("mesin dengan jumlah keadaan terbatas"). Pada tahap ini, scanner akan membaca input karakter-ke-karakter, mengubah keadaannya sendiri berdasarkan karakter yang tengah dibaca. Setiap kondisi final (input dianggap valid) akan dicatat, bersama dengan lokasi input. Pada akhirnya scanner akan menemui keadaan penolakan, yang tidak akan berubah dengan input karakter apapun. Deteksi rekursi semacam ini akan mengakhiri proses pemindaian dan memindahkan keadaan scanner ke keadaan final terakhir, dan karenanya menyimpan informasi jenis dan besar [[leksem]] valid yang terpanjang di dalam input.