Analisis leksikal: Perbedaan antara revisi

Konten dihapus Konten ditambahkan
LaninBot (bicara | kontrib)
k analisa → analisis
kTidak ada ringkasan suntingan
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 [[lexemeleksem]] valid yang terpanjang di dalam input.
 
Namun lexeme tersebut belum punya nilai semantik apapun; pemberian nilai semantik pada setiap unit leksikal adalah tugas dari '''evaluator''' yang memeriksa semua karakter setiap lexeme dan memberinya nilai tertentu. Saat sebuah lexeme telah memiliki informasi mengenai tipe dan nilainya, ia dapat secara valid disebut sebagai token.