Analisis leksikal

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 lexeme valid yang terpanjang di dalam input.