Monday, April 4, 2011
Scanner 1 ( Teknik Kompilasi )
Posted by Dendi Prana Yudha in
Kuliah
program Scanner1;
uses wincrt;
var
hrf:array [1..1000] of char;
token:array [1..50]of string;
nama_token:array[1..50]of string;
ch:set of char;
huruf:set of char;
j,k,l,m,n:integer;
txt:text;
chr:char;
procedure baca;
begin
assign (txt,'scanner.txt');
reset(txt);
end;
procedure tampil;
begin
m:=0;
repeat
read(txt,chr);
m:=m+1;
write(chr);
hrf[m]:=chr;
until (chr='#');
j:=m;
end;
procedure cek_token;
begin
ch:=['a'..'z']+['A'..'Z']+['0'..'9']+['+']+['-']+['*']+['/']+[':']+[';']+['='];
reset(txt);
token[1]:='';
k:=0;
m:=1;
huruf:=['a'..'z']+['A'..'Z'];
for m:=1 to j do
begin
while hrf[m] in ch do
begin
k:=k+1;
if hrf[m] in huruf then
nama_token[k]:='Tpengenal'
else
nama_token[k]:='Tbilbulat';
repeat
token[k]:=token[k]+hrf[m];
m:=m+1;
until not(hrf[m] in ch);
if hrf[m]='.' then
begin
token[k+1]:=hrf[m];
nama_token[k+1]:='Ttitik';
end;
end;
end;
k:=k+1;
end;
procedure cek_nama_token;
begin
l:=1;
for m:=1 to k do
begin
if token[m]='Mulai' then
nama_token[m]:='Tmulai';
if token[m]='Jika' then
nama_token[m]:='Tjika';
if token[m]='=' then
nama_token[m]:='Tsama';
if token[m]='Maka' then
nama_token[m]:='Tmaka';
if token[m]=':=' then
nama_token[m]:='Tmasukan';
if token[m]='div' then
nama_token[m]:='Tdiv';
if token[m]='Beda' then
nama_token[m]:='Tbeda';
if token[m]='mod' then
nama_token[m]:='Tmod';
if token[m]=';' then
nama_token[m]:='Ttkoma';
if token[m]='Selesai' then
nama_token[m]:='Tselesai';
if token[m]='.' then
nama_token[m]:='Ttitik';
end;
end;
procedure tampil_token;
begin
clrscr;
gotoxy(25,1);writeln(' keyword | Token');
gotoxy(25,2);writeln(' ******* | *****');
n:=3;
for m:=1 to k do
begin
gotoxy(25,n);
writeln(token[m]:10,' = ',nama_token[m]);
n:=n+1;
end;
end;
begin
baca;
tampil;
cek_token;
cek_nama_token;
tampil_token;
end.
maksudnya gimana ini? kalo implementasinya pake delphi kira2 gimana? mohon pencerahan, trims
ReplyDeletejadi ini penerapan scanner untuk membaca isi dari notepad,contoh :
ReplyDeletejika x > 1 maka ......
nah tulisan diatas kita simpan di notepad, kemudian program akan membaca tulisan "maka" program akan menampilkan output Tmaka, begitu pun dengan yang lainnya.
untuk pemrogramannya saya menggunakan bahasa pascal dan tools pascal versi 5 atau 7 agar bisa digunakan di sistem operasi ubuntu.
jika di delphi saya belum coba, karena saya tidak punya lisensi untuk menggunakan tools tersebut.
Oh pascal, kalo dibuka pake neatbeans bisa kan mas?? Atau sintaksnya ada yg beda?
ReplyDelete