2. Analisis Leksikal (Scanner)
Pengertian.
Merupakan bagian dari kompilator yang menerima input
berupa stream karakter kemudian memilah program sumber
menjadi satuan leksikal yang disebut dengan token. Token ini
akan menjadi input bagi parser.
09/28/182 Sesi 4
3. Tugas Sanner
1. Melakukan pembacaan kode sumber dengan merunut
karakter demi karakter.
2. Mengenali besaran leksikal.
3. Mentransformasi menjadi sebuah token dan menetukan jenis
token nya.
4. Mengirim token.
5. Membuang /mengabaikan blank dan komentar dalam
program.
6. Menangani kesalahan.
7. Menangani tabel simbol.
09/28/183 Sesi 4
10. 1. Identifier
Keywords merupakan kata kunci yang sudah didefinisikan
oleh suatu bahasa seperti : BEGIN, END, IF, ELSE didalam
pascal.
Nama harus di deklarasikan,
Contoh:
VAR
Nomor: Integer;
Suhu: Real;
09/28/1810 Sesi 4
11. Maka Nomor dan Suhu akan dikenal sebagai besaran leksikal
berupa nama Variabel yang terdapat pada program tersebut.
Sedangkan VAR, INTEGER, dan REAL merupakan Keyword.
Contoh keyword yang lain seperti: and, array, begin, const,
else, div, do, or dsb.
09/28/1811 Sesi 4
12. 2. Nilai Konstanta
Merupakan suatu konstanta yang terdapat pada program, bisa
berupa konstanta integer, real, boolean, string dsb.
Contoh suatu program yang terdapat statment:
N:= R + 5 * 10
A:=0.333
5, 10, 0.333 termasuk besaran leksikal yang berupa nilai
konstanta.
09/28/1812 Sesi 4
13. 3. Operator dan delimiter
Operator misalnya operator aritmatika (+, -, *, /), operator
logika (<, =, >).
Delimiter berguna sebagai pemisah atau pembatas, misalnya:
(), ;, :, ., ]
Contoh:
Program Coba;
VAR A: INTEGER
Begin
A:= A+2;
End.
09/28/1813 Sesi 4
14. Dari contoh program tersebut, yang merupakan besaran leksikal
(token) nya adalah simbol yang bernilai :
Program, Coba, VAR, A, INTEGER, :, +, 2, ;, :=, Begin,
End dan .
09/28/1814 Sesi 4
15. Struktur program Pascal
09/28/18Sesi 415
HEADER PROGRAM identifer–judul (identifier);
LABEL deklarasi
CONST definisi
TYPE definisi
BLOK VAR deklarasi
BEGIN
statement;
statement;
…………
END.