Descripción: Un analizador léxico y/o analizador lexicográfico (en inglés scanner) es la primera fase de un compilador consistente en un programa que ...
ANALIZADOR LEXICO DEFINICIONES PREVIAS 1. TOKEN Un token o
también
ca"acte"e #!e
tiene
llamado componen nente !n
i$ni%cado
léxico e
co&e"ente nte
en
!na !na cadena
de
cie"to le len$ n$!a !a'e 'e
de
p"o$"amaci(n)) E'emplo de token pod"*an e" palab"a cla+e ,i-. ele. /&ile. p"o$"amaci(n int. )))0. identi%cado"e identi%cado"e.. n1me"o. i$no. o !n ope"ado" de +a"io ca"acte"e. ,po" e'emplo. :20) Son lo elemento m3 b3ico ob"e lo c!ale e dea""olla toda t"ad!cci(n t"ad!cci(n de de !n p"o$"ama p"o$"ama.. !"$en en la p"ime"a -ae. llamada an3lii léxico. in emba"$o e i$!en !tili4ando en la i$!iente -ae ,an3lii int3ctico 5 an3lii em3ntico0 ante de pe"de"e en la -ae de *ntei) Cada token e !na ec! ec!enc encia ia de ca"a ca"act cte" e"e e #!e #!e "ep" "ep"e een enta ta !na !nid !nidad ad de in-o"maci(n en el p"o$"ama -!ente)
2. LEXEMA Rep"eentan cadena de ca"acte"e en el p"o$"ama -!ente #!e e p!eden t"ata" '!nto como !na !nidad !n idad léxica) Un lexema e !na ec!encia de ca"acte"e en el p"o$"ama -!ente con la #!e conc!e"da el pat"(n pa"a !n ! n componente léxico)
3. PATRON TRON Re$la e$la #!e #!e dec dec"i "ibe be el con' con'!nt !nto o de lex lexema ema #!e #!e p!ed p!eden en "ep" "ep"e een enta ta"" a !n dete"minado componente léxico en lo p"o$"ama -!ente) En ot"a palab"a. e la dec"ipci(n del componente léxico mediante !na "e$la)
4. ANALIZ ANALIZADO ADOR R LEXICO LEXICO Un anali4 anali4ado ado""
léxic léxico o 56o anali4 anali4ado ado""
lexic lexico$ o$"3% "3%co co ,en in$lé scanner 0
e
la
p"im p"ime" e"a a -ae -ae de !n compilado" coni coniten tente te en !n p"o$"ama #!e "ecib "ecibe e como como ent"ada el c(di$o -!ente de -!ente de ot"o p"o$"ama ,ec!encia de ca"acte"e0 5 p"od!ce !na
alida
comp!eta
de tokens ,comp compo onent nente e 7
léx léxico ico00
o
*mb *mbolo olo))
ANALIZADOR LEXICO: CARACTERISTICAS Eto tokens i"+en pa"a !na pote"io" etapa del p"oceo de t"ad!cci(n. iendo la ent"ada pa"a el anali4ado" int3ctico ,en in$lé parser 0)
5. CARACTERISTICAS DEL ANALIZADOR LEXICO a) LEE CARACTERES. El anali4ado" lexico e enca"$a de lee" la ec!encia de ca"acte"e del p"o$"ama -!ente. ca"3cte" a ca"3cte". 5 elabo"a" como alida la ec!encia de componente léxico #!e !tili4a el anali4ado" int3ctico) El anali4ado" int3ctico emite la o"denal anali4ado" léxico pa"a #!e a$"!pe lo ca"acte"e 5 -o"me !nidade con i$ni%cado p"opio llamado componente léxico ,token0) El anali4ado" léxico ope"a
ba'o petici(n del
anali4ado" int3ctico
de+ol+iendo !n componente léxico con-o"me el anali4ado" int3ctico lo +a neceitando pa"a a+an4a" en la $"am3tica) Lo componente léxico on lo *mbolo te"minale de la $"am3tica) S!ele implementa"e como !na !b"!tina del anali4ado" int3ctico) C!ando "ecibe la o"den 8obtén el i$!iente componente léxico9. el anali4ado" léxico lee lo ca"acte"e de ent"ada &ata identi%ca" el i$!iente componente léxico)
b) PRODUCE COMPONENTES LÉXICOS (TOKENS). Lo componente lexico ,token0 on lo elemento de la cate$o"ia lexica) o" e'emplo. en C. i e !n componente lexico de la cate$o"ia identi%cado". ;<; e !n componente lexico de la cate$o"ia ente"o. etc) En $ene"al. no bata con abe" la cate$o"*a a la #!e pe"tenece !n componente. en m!c&o cao e necea"ia cie"ta in-o"maci(n adicional) o" e'emplo. e"3 necea"io conoce" el +alo" de !n ente"o o el nomb"e del identi%cado") Utili4amo lo atributos de lo componente pa"a $!a"da" eta in-o"maci(n)
Obe"+emo el i$!iente c!ad"o:
;
ANALIZADOR LEXICO: CARACTERISTICAS
Ca!"#$%a
L!'!*a
Pa$#+
L&'a Ente"o.
"eal.
7;.
<>)<.
Sec!encia de !no o m3 d*$ito
etc
;<7;7;
Letra seguida op cionalmente de letras y/o dígitos
Identi%cado"
I. a. 3"ea. a7.
Caracteres ?, @ A , 6
Ope"ado"
!ma
Ca"3cte" : e$!ido de 2 o olo ca"3cte" 2
Ai$nacion
?. @. . 6
La palab"a =&ile
=&ile
:2. 2
,
/&ile
o" e'emplo en el len$!a'e C al in$"ea" la i$!iente exp"eione p"od!ce lo i$!iente Token:
) FILTRA COMENTARIOS. Lo comenta"io #!e e colocan en el p"o$"ama -!ente en c!al#!ie" len$!a'e de p"o$"amacion tale como: 66 comenta"io de !na ola linea de codi$o 6 ))) 6 comenta"io de !n blo#!e ente"o de entencia <
ANALIZADOR LEXICO: CARACTERISTICAS Todo eto comenta"io on eliminado po" el anali4ado" lexico) o" e'emplo en el i$!iente e$mento de p"o$"ama dea""ollado en c??:
Koat ci"c!lo,Koat "adio0 66 -!ncion #!e calc!la el a"ea de !n ci"c!lo 6 -!ncion #!e toma +alo"e "eale a"a calc!la" el a"ea))) Mec&a: 766;7> 6 Koat pi2<)7>7J 66 +alo" de pi a"ea2pi"adio"adioJ "et!"n a"eaJ P
0) FILTRA SEPARADORES M6LTIPLES (ESPACIOS7 TA8ULADORES 9 SALTOS DE L:NEA0) En lo denominado 8len$!a'e de -o"mato lib"e9 ,C. acal. Lip. etc)0 lo epacio en blanco. tab!lado"e 5 alto de l*nea olo i"+en pa"a epa"a" componente léxico) En ee cao. el anali4ado" lé xico e limita a !p"imi"lo) En ot"o len$!a'e. como 5t&on. no e p!eden elimina" totalmente) Se !an la i$!iente epeci%cacione:
•
Ope"ato": Ope"ado"
•
=&itepace: Epacio en blanco. tab!lacione 5 alto de l*nea
•
Qe5/o"d: alab"a cla+e
•
Identi%e": Identi%cado"e
•
N!mbe": N!me"o
o" e'emplo i tenemo la i$!iente entencia en C:
; (<<=) >
ANALIZADOR LEXICO: CARACTERISTICAS !!
>@ ><1@
El anali4ado" léxico lo lee"3 de la i$!iente mane"a:
t i- ,i22'0 n t t 42J n t ele ntt 427J
!) ,ENERA
ERRORES
EN
CASO
DE
UE
LA
ENTRADA
NO
CORRESPONDA A NIN,UNA CATE,OR:A LÉXICA. a5 poco e""o"e #!e el anali4ado" léxico p!ede detecta" 5a #!e tiene !na +ii(n m!5 "et"in$ida de !n p"o$"ama -!ente) Lo e""o"e p!ede e":
•
S*mbolo ext"ao: e !tili4an ca"acte"e #!e no pe"tenecen al al-abeto del len$!a'e)
•
Omii(n de ca"acte"e: po" e'emplo. e ec"ibe el identi%cado" CONTA en el c!e"po del p"o$"ama. c!ando dic&a +a"iable &a ido decla"ada como CONT)
•
e"m!taci(n de ca"acte"e: e'emplo: CAO po" CAO)
•
N1me"o de ca"acte"e in+3lido de lo identi%cado"e
E'emplo de e""o"e en el anali4ado" lexico:
V
ANALIZADOR LEXICO: CARACTERISTICAS -"o,int a27:aF27Ja??0 El anali4ado" lexico no abe #!e e ;$#. ente cao p"od!ce !n e""o". p!eto #!e la ke5/o"d e ;#$) Lo e""o"e léxico e deben a dec!ido del p"o$"amado") En $ene"al. la "ec!pe"aci(n de e""o"e lexico e encilla 5 iemp"e e t"ad!ce en la $ene"aci(n de !n e""o" de intaxi #!e e"a detectado ma ta"de po" el anali4ado" intactico c!ando el anali4ado" lexico de+!el+e !n componente lexico #!e el anali4ado" intactico no epe"a en ea poicion) Lo metodo de "ec!pe"acion de e""o"e lexico e baan bien en alta"e ca"acte"e en la ent"ada &ata #!e !n pat"on e &a podido "econoce"J o bien !a" ot"o metodo ma o%ticado #!e incl!5en la ine"cion. bo""ado. !tit!cion de !n ca"acte" en la ent"ada o inte"cambio de do ca"acte"e conec!ti+o)