Dalam penguraian, kami paling sering memahami analisis bahasa bebas konteks. Bahasa bebas konteks lebih kuat daripada bahasa biasa, karenanya parser dapat (paling sering) melakukan pekerjaan penganalisa leksikal dengan segera.
Tapi, ini a) cukup tidak wajar b) sering tidak efisien.
Untuk a), jika saya berpikir tentang bagaimana misalnya if
ekspresi terlihat, saya pikir JIKA expr THEN expr ELSE expr dan bukan 'i' 'f', mungkin beberapa spasi, maka karakter apa pun yang dapat dimulai dengan ekspresi, dll. Anda mendapatkan ide.
Untuk b) ada alat yang kuat yang melakukan pekerjaan yang sangat baik untuk mengenali entitas leksikal, seperti pengidentifikasi, literal, kurung dari semua jenis, dll. Mereka akan melakukan pekerjaan mereka dalam waktu singkat dan memberi Anda antarmuka yang bagus: daftar token. Jangan khawatir tentang melewatkan spasi di parser lagi, parser Anda akan jauh lebih abstrak ketika berurusan dengan token dan bukan dengan karakter.
Lagi pula, jika Anda pikir seorang parser harus sibuk dengan hal-hal tingkat rendah, mengapa kemudian memproses karakter? Orang bisa menulisnya juga pada level bit! Anda lihat, parser seperti itu yang bekerja pada level bit akan hampir tidak bisa dipahami. Itu sama dengan karakter dan token.
Hanya 2 sen saya.