Analisis Leksikal (scanner) mengubah deretan karakter-karakter menjadi deretan
token-token. Sebuah token adalah komponen dasar leksikal dari program. Token adalah
level entitas yang paling rendah dalam diagram sintaks.
Contoh analisa leksikal pada
program SPO dengan bahasa pemrograman Quick Basic >>>
REM Program SPO
10 CLS
14 PRINT " * TEBAK SUBJEK, PREDIKAT DAN OBJEK PADA SEBUAH KALIMAT * "
16 PRINT ""
18 PRINT "Anjas bermain gitar"
19 PRINT " "
20 INPUT "Subjek = ", SJK$
20 INPUT "Subjek = ", SJK$
22 INPUT "Predikat = ", PDK$
24 INPUT "Objek = ", OBJ$
28 PRINT "ANDA BENAR SEMUA"
30 ELSE PRINT "ANDA SALAH, COBA CEK LAGI !"
32 END IF
35 PRINT " "
40 INPUT "Mau coba lagi? tekan 1 untuk YA, tekan 2 untuk
TIDAK : ", c
SELECT CASE c
CASE 1
GOTO 10
CASE 2
GOTO 60
END SELECT
60 CLS
61 PRINT " "
62 PRINT "Terima kasih telah mencoba !"
Output Program >>>
Jika mengisi dengan benar >>>
Jika mengisi dengan salah >>>
Jika tidak ingin mencoba lagi dan menekan angka 2 >>>
Analisa Leksikal :
Keyword (REM Program) ident
(SPO)
Literal(10) keyword(CLS)
Literal(14) keyword(PRINT)
literal(" * TEBAK SUBJEK, PREDIKAT DAN OBJEK PADA
KALIMAT * ")
Literal(16) keyword(PRINT)
literal(" ")
Literal(18) keyword(PRINT)
literal("Anjas bermain
gitar")
Literal(19) keyword(PRINT) literal(" ")
Literal(19) keyword(PRINT) literal(" ")
Literal(20) keyword(INPUT)
literal("Subjek = ") punct(,) ident(SJK$)
Literal(22) keyword(INPUT)
literal("Predikat = ") punct(,) ident(PDK$)
Literal(24) keyword(INPUT)
literal("Objek = ") punct(,) ident(OBJ$)
literal(26) keyword(IF) ident(SJK$) operator(=) literal("Anjas") keyword(AND) ident(PDK$) operator(=) literal("bermain")
keyword(AND) ident(OBJ$) operator(=) literal("gitar")
keyword(THEN)
Literal(28) keyword(PRINT)
literal("ANDA BENAR SEMUA")
Literal(30) keyword(ELSE
PRINT) literal("ANDA SALAH, COBA
CEK LAGI !")
Literal(32) keyword(END IF)
Literal(35) keyword(PRINT)
literal(" ")
Literal(40) keyword(INPUT)
literal("Mau coba lagi? tekan 1
untuk YA, tekan 2 untuk TIDAK : ") punct(,)
ident(c)
Keyword(SELECT CASE) ident(c)
Keyword(CASE) literal(1)
Keyword(GOTO) literal(10)
Keyword(CASE) literal(2)
Keyword(GOTO) literal(60)
Keyword(END SELECT)
Literal(60) keyword(CLS)
Literal(61) keyword(PRINT)
literal(" ")
Literal(62) keyword(PRINT)
literal("Terima kasih telah
mencoba !")
* Note:
Penjelasan tentang jenis token, yaitu :
·
identifiers (e.g. variable & function
names, etc.)
·
keywords (like while, if, function, etc.)
·
operators (like +, -, *, ++, +=, etc.)
·
literals (constant values like 27.3, “Hello”,
etc.)
·
punctuation (like ‘;’, ‘:’, ‘,’, etc.)
Hanifidiani, 13110122, 3KA08
Tidak ada komentar:
Posting Komentar