View
1
Download
0
Category
Preview:
Citation preview
; . ' ; .TEMA 2. : ANALlSIS LEXICO .
El a.naLil.acior Iéx.ic.o es el rnmer mÓdu.lo ~l.Ie ~e ,.diGi:a. I el ~Ile
c.cmien't;a Lo. compilación I Q\.lfl<;jue es el onaLi~ador s in1á.d i c. o el ~ue la d iri<¿Je .
¡;I 0.. li",'c.o es el responsalo\e de encontro.r las unidades :3 pa.s¿rseJns
0.1 s int a ..d-ic.o : lee. el p~ra.mCl c.a.rader a co.rocte r de i~~úieroo a derecha. I
iclenh8i c.o. lo!. toke.ns ~ se los pasa al sinta:dlco si son IbicQm~nte correct os . El
lé;.ic.o es el ú.t'Iic.o rnóduJo ~ue lee e l pr08ro.ma J uente. . Diche de olv'Q gorma. I
tro..nsJorma. eí pre3roma JUente en IJJ'\ co~u.nto de toktnS.
8 anaLl ü:\dor lúic.o detecto.. errores lúic.os . t=br %iefl\plo :
Idel1tiJic.ad 0(' demL\siado larao ( excede la lona ítud I • perm'l l-ida.) .- rna.l(ltllO
- Co.raete.,. no permiado en el l~uc~ie .
El 0.. léll.ic.o reconoce los tokens Il'lediante uno, 3ramáh'ca. re s u.la (' o
e.lI.presicne.s ~u.\a.re.s ..
PROPosicioNES EqoiVALE.Nl'ES :
1) L es u.n co~un+o re3u..1nr.
2) L se denoto. pOr U.na ell.presloÓ ~II.1nr .
3) L puede ser degin id.o por u.n AFN ( a.u+Óma.to. Jin;to no determinista.) .
Cuo.l~¡er AFN puede ~,.. !.ra.t\SJor m o.do en 11/\ AFD ( de.tel"min's\a.) .
oc..u.rri r <:\ue.
eotradQ. .
c.omp;lado(' oo
de un paso ClI
o.dmi+e o.mbi 8üedad. =) Nece~;+O un AF D - > No puede.
siauiente te,,? va.ria.s opciones con lo. misl'l'\ CI..
AFD AFN
Cristina Bueno F. (2010) 13/290
Tema 2: Análisis léxico 1/22
Q = CO~i.ln~o de estados del autómata .
le. ;: A\Sabe.to de en '=md.", .
S :- Fu.ncion de tral'\Sición .
~G = Estado inic.iae .
F = Conju.nto de es.tad~ Jinales .
A F D =) J. : Q x "le ~ Q
AFN =) J : Q 'Á le ~ P(G) -;:. SUbc.onju.nto de Q .
El le,,~ua.je. <:¡ue. reconoce un autómata Jin;to es. i~ua.1 0.1 len~lJ~e ~ue
~el\era u.oa W'Q.m~hCC\ re8Í\,I~r :
L(AF) { t J t E le· I (~I t)..
t-
AUTóMATA RECONOCE. LEN6VA~E.
GRAMÁTicA GENERA LEN6uA;JE.
OJ\o.G wdor s inh ( d ic.o tenso ~ue pasarle ¡"Jor moción, decirle.
encontrado (tok.en + ¡dentiSi cado,.. ) . Por +0.0+0 I el QMlicador
Fi,,;to (TF) .
au\:ómal:a. reccnece IQS tokens I
se si sen c..orrec.tas, pero ni
e:Jué. es lo c.¡ue. he
I¿xic.o es Uf) lrocludor
1::\ Il= rec.i be une cadena de entradQ, va. ho..nsi rondo de. un edado
olonene (bnduce) lo cadena de salida .
IF N =r) S: Q" (Te U x) ~ P ( Q Ir. I s" )
TFD =) J : Q 1. (1"e U x) ~ Q 1. T s"
Cinta. de.-en\:JUdo. .
1,.. ('F) "" {(e/s) / t e. le·, S e.Ts" I ( ~Ol ti>')~ +
c..nt $C.l
.-Y (<;¡FI A, s)}~ ~
ent. Sal-¡
T rociut(ic;' de.la Oldena. eleentrada.
Cristina Bueno F. (2010) 14/290
Tema 2: Análisis léxico 2/22
_____{ AFO +
Acciones semd."fica.s
r"c..teresl
(;
Aoalii;.Qdor
l¿xiCO
k.eo!O
Al'lllüeaclor
sintddico
T o.eeos sec.u.ndcuio.s del analiwdor léll.ico :
- Mo.n~a
- 8irnina
el Jkhero JUen+e
¡nJormación in~-hl
(lo o.bre, lo lee, lo cierro.) o
e.spa<.ios, ccmento..rios., saltos de lífleo) o
Cuen~o. el nú-mero de l{neo.. por el ~e "Q para ~ve, en co.so de error,
se. pueda. moslvo. r en ~ué lJnea se produjo).
TOKEÑ :'1
U,,;dad rl'lI'n ilWlQ, con ingormoc.ió" en el pre~ra.ma =) Componente
léllic.o O'l;nimo con sisn°'gicado.
¿ Cuá.les SOn los tokens eo W\ le.n3u~e de pro~rarnacÁón? SOn idenbJ;cadores,
palabra§. re.se,.."adas, nWneros (~t.e.r()5, reAles), eperodore.s, s~no5 de. pu.ntuaci~n,
consl:o.ntes. o, .
¡;°e.m lo :
El token es el símbolo kmi"a.1 de la 3romc{.h"c..o.. de C<lm-e...d-o Libre
(..01\ la c:¡ue ~ro..baja. el Clnalil.Cldor sinl:a:.chco .
... PATRÓN DE UÑ TOlr-E.1'J I Re~la ,-\ue dese..; loe el c.o1JWl~O de. IOeJ'l"\ClS (c.adena.s de
~\rodo.) c:¡ue podríClO constt-uir ese. I:.o~n (c:¡ue produ(..Qn VJlQ.
rnismo. rodeno. de, salida) o =) Re3'a paro. saber SI lUl l::olen
e.stá.. .bien jorl"l\a.do.
los deliMitGdores no sen tokens . Seo co.raeter~ . rara se,)Qli~(" el Si."la.I de! +oke.n . Es
J'rec.uente ~e sea. el p..;~e... cQ.rclcier del token sisui ente.
(Cristina Bueno F. (2010) 15/290
Tema 2: Análisis léxico 3/22
4f LEI(EMA DE u"¡ TOKE"¡ . Co~v..nto de cnrocteres del pro~ra.mn (cadCl'lC\ de. entroJa.)
~U~ es ~irC\mdo ce:n el patrón de UI'I token.
TOKeN LEllE.MA PATRÓN
palClbra. ~erVClcla. iS ¡SI "¡F iSiel cont t(eJcl/-)- :o> Lt.+ro. seSVi do de
°rerodor relo.c.iono\ > >lE!4-ras, I'lúme.ro.s , - '
nUM _ ~nt 5 d..+
pCllo.bra. reservada. l:.hef'I then -l:hen
iel Imprime. e.Ce./d.)-
pa.réntesi~ a.6ierto (
tte.ro.e lo Fin ~
loe(t./d.)"~
pClrintesi S ce.r ra.elo )
pu.nte~
Como. ;
Al Meno.& W\a e.igra ente.rQ.
l " I L: 1 " i. L_ ' d.t' , el1' "./' u otro deo:m,o.l.O$. ov.merc$. reo, es oenen e SI31J1l~n\e palTon : ti
S no ten50 e.¡ue. d'1eren cia.c- Jos tokens de. los n~",eros enteros ~ reales,
el po.tro'n será.. : d..+[.d.+J (Los [] inJ.;cQIl ':ll.le -es cUso opcional) ,
¿ CÓfYlO representaJ eocL9ic.a. el o.no.li.¡,.ador lé....ico !.ln tol<en '?
Cado token .se. repres.Cl'\ta por un pa.r (_, _) . Dicho par e..:t¿ ¡formado
1) Pnme.ra componente =) Códiao del t~ken -:kl c;¡ue se l::ro.l:o.. (po.labro..
.' reservada., i de.n-hJi ca.dor, 0re.rador .. .)
2) Se~v."d" comro"~nt-e. => Insta.ncia. del toL<e.n C lel(ern Q o po~i c.ió,.. del lelCemo.
en la t<uolo. de ...ímboloS) . Aporta IY'IcLS inJ0r mQUoó
en los. CASOS c:¡ue. ~a. oecescoie (ca' : dentro de IQS
po.lCl.loras re.~er liadas J Le dhe ~!.lé pa.lab ra r-eservoda. es) .
Dos tipos ,
lOKE./\/ COMPLEJ'O ; (-,-) =) Se coclicfico como I.lf\ po..r de nlLmeros.
Tol<EN SiMPLe. , (-) " .\ \\
nÚtn~ro.-) I.U'I solo
Cristina Bueno F. (2010) 16/290
Tema 2: Análisis léxico 4/22
E·e.m lo:
• T OKE.N iJ ' Códiso palabra re.serVQdQ =:Jo (comu."n pa.rn todes lo.s pa.!cü>rQS res.erllado.s) ,
Códiao ;3 = 3 (dentro de las palClbras reservado.s, el ii es el 3).
TOKE.N iJ = (:¡., 3)
ti TOKEN Lcnl . Códi80 idenh81co.dor = 5 (común puro todos 105 ;de.nhS; co.clores) .
CódiijO cont = 10 (deniro de los ¡d " el ccnt, es el 10) ,
ToKEN conl" (5 I '\0)
.. l'OKE.N >
~ TOKE.N 5 ,
.. TOKEN ~he.n .
TOI(EN> = (L¡)
Códi~o 'llime.ro = 2 (Común pCL ....O' lodos los nW-Oeros.) .
Vedo r nJ.li\~o = S
TOKEN 5 = (2,5)
Códiao palobra. rese.rva.d..n. :: 1-
CódiaO tne.n = L.j (de.ntro de Io.s po.loloros reselVodos, e.\ lhV\ es el i.¡ ).
TOI(EN the.o = ( l , <.4 )
.. TOI(EN imprime. . Códiao idenl1g;c..odor =.sCócL<00 'lmp'; me = 13
ToKEN imp,;me = (5 I 13)
~ TOKEN ( . Códi?}o pare~tes i~ -:: 8
Cócliao paréntesis a.loie.rto = 1
.. TOI<EcN ¡'Fin 01 • Có~'cao L4~erC\.e. = 3
Códicao Fin = =f-
TOKEN ·'Fin· = (3.lo)
(com~n para
( ind.i ca c;¡ue es
bdos los literales).
lo c.adel\o' "FIn") .
Cristina Bueno F. (2010) 17/290
Tema 2: Análisis léxico 5/22
... "TOl(EN ) . Códicoo po. r-éntesis =8
Códiao po.ré"tes.is ce.rrado = 2-
TOKEN ).= (8,2)
'" TOI{Ef\I Códi~o :- G/ ./
TOl\EN = ( ~)
"TOKEN CÓD. T OIICEN
po.\o.brQ. reservada. ("1,-)
idenbS¡c.aclor (S 1-)
"Wl"\e.ro (2 ,-)
°r· o.ntmine.o ('1,_)
si~nQ$ p~ntl1ocio~
:
Es tos tokel\s,
s ernn
1;1 ~llJ\d.o c.o..mpo es. un nÚ.mero del '1 ot 4 po.ro. pode.r ~c;.+i"8u.i...
los 0re-rnclores:
+ ,..., 1
- IV 2.
... "TOI(EN,
OIAtl'\~ro :
cAmro e.s -el vtl.l0 r de.!,
"u.mero.
Cristina Bueno F. (2010) 18/290
Tema 2: Análisis léxico 6/22
~ TOKEN identiJka do r : (5 ,_)
a . lé.,.¡ <.o nc
s inO ~1J e. eso
El S~\,l"do CAmpo es 1
- le.ll.ernQ. del ide.n+;J;c.ador --. Esto es as; cuQndo el
Ios ideobgic.ado res en la TS (Tablo de S ímbolos) ,
la reo..li~a el Q. . s i nt¡{c h' (. 0 .
PO!li c.io'n del ·.denh8 icad or en lo. 'S -+ ~ esre caso ~ es el 0. . I¿",¡(.o
el ~ve. me.+e los ld e.n+igicado res 1:.0 la ,S ,
.. iOK&I\J pcJabr a reservada : (1- 1 _ )
rese.r-vodc, ell
d e pa.la.loro.s reservadO/) .
1as pa.laJoccu;
pos'lb; li d c eles .~rllado.s . Para sa be r ho.sta dónde. I\e(}a.n -és~~ en IQ. 1$ h~ 2-
. I , 1 J ... - Se: hasta. dónde. h~ paJ o reservadas en la. .,.S.
" .: - .El'-iS te. j u.n c.o.mpo PR et\ la. TS C:lue. marce a 1 SI es pa.l . rc.serva.cla. .
.Norma..lrne.ote. 'se LlFliSica la TS (ldenh8ico.dores ) ~ la t a.bla de pa \. rese.f"l(\.da.s .
El ses undo CD.1npo es lo. pOSic.io't1 c;¡ue. ocupa eso palab ro..
W\a. t<tb\a. I c:¡ue puede ser la "Tabla de SLmbolos o lLl\a. t.o.bla
SL se .... tiLiU\ la. IS, al pr-inc.ipio hG\Y ~1Ae iniu a.\ii.a.rlG\ con COMs
! . I
r
@Re.cono cer :1- traduci r un Único token ~ue sea u.n nu.mero entero o
rea.! sin s is no ..,
~ot~ ,- CIolQ.!\do I!\d pidaA el Q,1IQ,\i1.Qoor lélliCl) ~ un U~
~aot q..e nQ(Qr, 9ro..l'/\Á.~CQ. I Id.D. ~ o.uio~e.s ¡etná.c-.nCQ.$ .
Pa.hón del token ~oe. ha~ ~ue reconocer: eL+ [ . d..t ] [ e. [si~llo] d.-+J-,
nUmJt 10exP
~--v-v--v-~------..AFD o) Re~Ol\oc.er el tOk4a1 , \ter si es correcto . )
Ac.cioNES SEMÁNTI c.AS =) Traducir el token ~ se"er'Q,1"
)
.Jel rok-t.n (c.od_i-o\ctll, IIaJor)
'-..-_J.~~A-/
Cristina Bueno F. (2010) 19/290
Tema 2: Análisis léxico 7/22
N ~ d..RN
RN -) d.RN I .F\ eE.l~
F ~ dR~
RF ~ d.RF I e.E 1)..~ ..., siSI'\O /\lE I clRE
NI:- .... clRE
RE ~ dRE 1)...
el ~ 011/ .., /9 }-s- ~ +1 -
En lo. 3\'"o.ty\ ~tiC. o. re~ulQ.r "abría. ~ue sus~ tv¡ r
"el" ~ ·.si~no" for co.do. " 1'1 0 de S;l.4S va.lores posibles; ,
11 a" re.presento. todos los d:S;tos .
el e.
Co.ra.eter deliMita.dor del
to1cen , En este coso puede ser un
\:.Io.n Ce I opero.dor I o+ro ca.rá.der '"
( FRACc'lo "'ARIOS)
CUALq u i ER N ÚMERO DE LOS Ml1'fR.IORES .
, ..
A cc.iones s~mc:{nh'cas :
En le, ""mera. tral\sic..ion lo meJor es i,,;cio.liuu- /
~odQ.s. \as \I(u';cJoles , f\sl OC) ha.y ~~e hQce rlo más (\ddQ.J\\'e ~ belsta.rc{
C.On mocLgic.u.r su va.lor cl.4al'ld.o sea nec.csano.
A : nu.m : = el ;
sl~no : ;:: + 1 i
dec : "" O
e. ~p : = O I
e~ .;: e)l,p '" 10 "t d. ¡
..
B I num ::: nurn iI 10 + d i
c . dec: : .= elec-» 1 i
o: ii Co.r =1 - I -lhen
siano = -1 i
+end.n'Q. <:\ue hacer
esfc , pero es
peo.- :
Ie l cle.c..:=1 ¡
DI : d d 1ec., = ec + i
Cristina Bueno F. (2010) 20/290
Tema 2: Análisis léxico 8/22
I : ~~ _ token ( c c:'d ia o , num) j
l... nú.mero <.otu-o
-> Enlr&3Q.\"lo aJ aAClli lador 5i"tQ.c.+ic.o.11
~ero.r token
;)' : ( - dec)~~ - tokec"l CÓdiSO, nurn .. 10 j
~ "ú'rnero reaJ
En el es tado S ina.l 9, para.
COmprobox lo s" ~lLi enk :
( sisoo l' ~ J(. p) - dec. -+"a
d..igerenc.i a.r si ~en9° \A1'\ entero o ren! , ho.~ ",ue
s', < O =>,
r e Q\' @Nu...me.ro
Si q O => Nú,r(luo e nt e ro .
K, ca..nt := (,5;800 t eAp) - dec. ;
ii ccot ~ O then
8er\ - t.oken (códi80 , num .. 10 cant) i
e l~e l; nl.lll\trO ~n-le.ro
tak ( 'd ' cant) .Ser¡ - en c.o 180 ' I'Il.lm'" 10 I
'-. n~mero reo.!
A veces en un est e cle
Jil\ClI puedo tener IIo."OS
bpOS de tokens ~e
pl.ledo clish0<au.if med.ifulte
les acciones sema:nh cas o
Ho.cer ..r"e~l.U'\tQ.s· pa.r a.
cL~tin~uir Los tokens .
Si ur.En otro
es lOa.yor
CASO , nWnero reae .
,numero de d eci ma..les , entonce.s. es
,numero e nt ero
2.5 => (1 . o ) - O ,. O ""> E.ntero.
21.¡'15 .101 -=> ( '1 ~1) - 2 = -1 =) ReQ.e .
2t¡ 'lS .1Ó3 => · ( -1 ~ 3) -2 = -5 = ) ' Reae.
U"a. puede ser muy simple o muy compl i cada. .
Ma.bü. de tra.l\Sic ión del AFD :
( Cl) Punto in~perado .
O,) Pllnto inespe ra.d o .
(e) ForM a.to inc.orred o
¡ d. . e + - de.l
o 1 A
'1 1B 3 <D 2I
3 QBC (a.)
Lt I.¡ BC (O 5J'
(; SE (h) ~ D 'TD
T SE Ce.)
8 8F C¡K
Cristina Bueno F. (2010) 21/290
Tema 2: Análisis léxico 9/22
Al . ~e.rCIC.lO • ant~tior (.1), e;¡Ule.ro añadir los eperaclore.s relaciona.les «ttu c.ompa.racl~:
OPERADOR CÓI>¡ eo
):. O
> 1
<= 2
<. 3
== 4
!= 5
s ~ >AI<.Bj =c I !o
A ....,. = I >.
B ....,.= 1>-
c ~
D ~ '=
o
p
R
(Fol"ma. parte. del AH> a.nle.rior) .
M : 3en- t.oke.n (ucL op_rd. , o) ;
N: ~eJl_toke..n (c.ed..-op-I"'e€.,1)¡
o: ~e.n_ tol.<eo (cocL op _rct , 2);
P: Sen - 1:0 l<e.n (cocl - op .-r&.,3) ;
~: ~en - boke.n (c.ed _ 0p _re.t, I.¡) ;
R: gen_ token (cocL op-rd , s)¡
".,
Cristina Bueno F. (2010) 22/290
Tema 2: Análisis léxico 10/22
E'ec.icio : Ahora. t:.arnbie.h c:¡wero recooocer el =
'3
OPEAAI>QR CÓDi~
= ce.
C:. ramc:ltico, r~u.Ja.r :
S ~ ;?AI<.B I :: e I i o
A ~ = 1 A
8 -+ :; I x
e ~ -= J ~ Clñadido
D ~ =
AFD :
AU-iones semMnc.a.s r '=' : el si~uiel\~e. CllJ'oc:rer pertenece a) si8uiente 1.o1.<en
(si "" es LVI c!elirn',tador ) .
L : Leer el s i$.luiente cco-octer del Jichero de enh-adn . HQ::J l.:¡lle "lSQreO en el AFD
cada ve~ <:¡Ile. .se censume u.n cn.ra.c1er .
Lh En la. tra.f\sic.iÓ", de ~ no hCl.t¡i ~ue poneC" lo. nccio~~el'/lCÚ\lic.a L pOl"~ue 1\0 he consumido el cOJá.cte.r . No lo <:luiero 1€eI'
a..horn ~ue. lo perder:o ~ es necesetric poro el sicauie-nte. to~ .
Al poner >. en los trol\Sic.iones I tomarnos A como el ceoJu.nto de. cco-octeres
'.¡'le. permiten lo. trnn siu~ en c.u~oón. En el 0050 t'ná.s. ~enera~ ..epre!»enl:o.. \:od.os-&s
caracteres ~xc.e.pto cJ de. las o*ro,s opciones de +rnns.i cio~ .
Podemos sUSo+-; lui r lo por ~ o.c." (otro ca.ra.cter) o· ~" (carac.teres delimi ta.dores
del bol.cen ) .
Cristina Bueno F. (2010) 23/290
Tema 2: Análisis léxico 11/22
Indl.lir a.hora:
- Po.\a\'ras reservadas ~ e. {ee deJim; tador
- IJen-hJicac!ore.s ~ e. { 2.1 eL}: clelim;rodor
- Opera.dor ~illbrlic.acio;" ~ •
Existen 3 pos;bles SOlilciones:
s ~ tR 1• I :A
R"" tR I d.R 1 ).
A ~ =
AFD :
> paJa.bra reservado, o idenbgic.odor .
necesita. delim·,tador).
ProhkmQ. I R~(ono~o las palabms reservadas ~ ~os. icl.enb3'w.dores I pero no
los cliShf\80 ' Para. <:l~erencia..rlos ha..bña ~ue uS(l.r acciones s.em¿n¡';cQ~ roo~ c.ompl~.
b AFD:
1h>b1~ma. \ .,-e'1)0 el
mismo problemq ~ue
untes . A~ 00 los
puedo dis-ti "811.ir s;
esttÚl compuestos so1o
por ~s . Necesí +0Qet.lC'1es semc\.nfic.o.s parQ.
d.is.tio~u.;r\os .
Cristina Bueno F. (2010) 24/290
Tema 2: Análisis léxico 12/22
AFI): &i este, solución detecto les pa..la.bl'"Q.s resenlaclos uno, por una , ~o ~e
provoco. lo. necesidad de muc.hos ~sia.dos.
R:Lra el cose de ';fe todos lo.s palabrcu; reservadas sean . be3in , encL, iS,~het\. eJse· \:enell'las- el siSl.lienle AFD~
=) end..
=) else.
~) l:he.n
T Q. 0'1bien
e.o.. a.si~nac.\.ón : = .
Solución : Nos vamos Q. ~uedQ" con eu soe.ución Q.) ~ Vo.moS o, n QCer sus
a.c¿ooe~ se mcÚl-tlco.s .
L,CAFD :
\-----'""-->0 D
B
A : sen_token ( 01'- muet) ;
B : Sen - token lor - Q.si~) ;
e C.ol'lccdeno.r =) Voy Jormando el le.<emC\ a.l c.onca.teno.r lo ~l.Ie voy
leyendo.
L : leer el si3",;e.rte co.raeter del gi che..ro de entrQd.a. .
®Cristina Bueno F. (2010) 25/290
Tema 2: Análisis léxico 13/22
~§ El UlMpi lador soJ.e desde el principio ~ue.' fXl\oJ.>r~ son reservad o.s. Po m.
~ elo diSeren<inr lcu palo bras r-eservadas de los iden4,"cfic.adore.s t.enao c:¡ue. mim.r1----. ~8nr donde las. tenao almacenadCLS . Si )0. encuentro ah;, e.nionCE'5 sé pe lo ':lue
~ l1e el\cooi;rndo es una palahra r-e.senada. o, en caso contrario, es LU1 ide n-hg ;ca cJ or.
8
Ac:.c.ión sema'nbca D => Pa.ro. hacerla. SUponemos <:tue el o.not,;e.ador l¿..uco
introduce las idellbJi cadores (con sus lel'.emos) en la tabla de s(rn bolas (TS) .
As~ I ~i e.m pl"€. <;jue o.pa~e u.n iden\fieaclor I ,s; no este{ eo ea "S lo in-VOdul.co
(si estoy en le¡ ~n(\ de dec.\or"cio'o de voriables) . Las pa.labro.s r-eserva.das
esta'o en \.V\a. '!.Onu pfeJijad a.. de la 'TS o bien hQ~ AA campo PR en ~Q TS
pa.ro ident1gic.a.rlG\S . Si tuviera. 2 tablas ('TS ~ Ta..bla. de. Po..labr a.s Reserva.das)
pnmero mira.r¡'a en lo, "'PR ~ SI a.h: no lo.. encuentro
iden6gicad or ) .
se lro.ta. de un
. 7¿ Es fa.labra reservada .
... sí : sen- token (coeL PR I cód.j~t);
~ NO: ES "0 iden-bJk a d or.
¿ Estoy en \o ~na. de dec.1a.ra.c.i~r) eJe vo.ri a.~\es?
-+ s; ~ ¿ Esic{, en la.. l:a.bla. de. símbolos?
... NO : ~_ token (cocL idenbS I posición);
Inser l:a.r en lo I'S .
-+ S; : Error =) Du.p~e.idacl de.. va.A.ia.Io\e .
-+ NO: ¿ Está. en la ta.blo de s~bolos '?
.-. st . ~~_token ( c.ocL ideobs I pos.ioón);
-+ NO : Error => Ije~t:\8ic.a.dor no decJarado .
D \ P:= Buscar (le1.erno.);
iS p=::O then
p ::. Añad.ir (Iel'-erna.) ;
iS p == PR then
3en - to\<eo ( c.od - PR, p) i
el se
Cristina Bueno F. (2010) 26/290
Tema 2: Análisis léxico 14/22
Solucio~,
Dz => lde.nbgic..o.dor.
D1 : P'" Buscar ( lell.ema) i
iS P == O -tnenf : ;: Añad..ir ( lel'.ema.) ; .
ji p :: = PR then
~en _ toi<en (c:ocL PR, p) ;
else
sen _token (cocL id., p) ;
IJ Pala.bra. reservacl.a..
/1 'detlhJ;cCldor ~ue yo. está: en la IS .
~ MéÑSAJES DE ERROR :
Durante el ·-aneÍ.Llsis.
~"rores , no ~
producen .
Es necesario cOl'lsiderar lo. tra.nsicjon de error en cucJ ~u.ier
estado del autómata . Los mens"j5 de erro r pl.lede.n s:'l2.r,
men o !> deta.llados .ma.s o
Es1ado de error = ) Si rec.ibo 0.180 d istinto de.
~, el, .,. . '" entooc.e.s Senero LU'l error.
• ESPAcios : ¿ qui haso con los: -espa t.ios ~n blanco c.acto. "el. ';lue voy a ~mrelO.r
a. obtene.c \lt\ token '? El QutÓll\a.to. va ~l.m·l nCll\do estos es pa (.ios en el
estado lol.tiol.
Cristina Bueno F. (2010) 27/290
Tema 2: Análisis léxico 15/22
.., CoMEtJTARios :
~.,e.mplo : Su.poniendo ~ue
~~
los COlYlentcuios sean de
1 •
lo. · Jorma ( 'ti ' " .)
fn los CAmento.tios sólo hay ~ue. ho.cer lo. nccion .setncl.nhc.o.. L =) Sólo
l:.e.nao ~ue. ir cons\Iol'I\ie.ndo los <.o.ro.c..te.re.s .
.....--. ¡;I c.omentarlo se e:,uito.. I
pero como el 'l . I¿",ico +ie.ne.
c.¡u~ deuolver IAn l-()~ll, debe.
IIOlier al es1Qdo inio al tCClYle.n 'lar o. re.c.orrocer el
Ahora Va.mos a ver el autómata
de ma.nero. MeÚ completa.
visto po.ra eJ ~ o.."te.rior
Diseiia.r \.lO anQlieo.do.- léxic.o para PR, id., . - , « .
'Tenemos t, tokens :
- PRo =) e. {n"- ID:) e{e. I d,r- Op_ MUL'T => l'
s ~ fR \ .. I : Al del 1 A
R ~ tRI d..R I delz
A'" =
DiSE~AR UN A .L.
• IdenhJiear to~ens.
• Constrwr ea ~ya.m á.\lca. (bR) .
• Coostruir el outomato. (AFO) .
• Incorpora.r las ace.tones !o;emO:n
6ros f'lecesa.rias. .
• Con1em pla.r los casas de error.
• Implementar.
Cristina Bueno F. (2010) 28/290
Tema 2: Análisis léxico 16/22
Autómata (AFI» :
-1.1 dd~LEERc~c
e
Aaiol\es semW1hcas :
LEEIl.fieL CONC
LE.ER : Tomw y conSLLrrll( el carocte" ~\.Ie este{ a. la e"trada. .
CONe , Cotls-\-n,ye el le~rna. concatenando les carac.teres le~d.os.
GEN_ TOKEr-I : Ger.e.tn · eJ token encc:nb-ado.
BUSC.A , Bus~ el lexemo en la TS . Devuelve, la. rosi c.ión SI lo e.ocuent:.,.o.o ~ ~ no.
AÑADE . IncL~e el le"e~C\. -e" la 'rs. Devuelve 1(\ pos;c.io~ en la <:fe. s,;~ ha ·,/\sed a cl o.
I'I!UM : valor , = veJor ... 10 ~ el ·,
puecbl ind icarse .
' a notocio'n ~ med.ia.n~e los ~iJos el t-lfo..
E·ereiuo . Dishn+os bipos de,
nUJ'l'>€ras '.feMeclia.n~e los pre.S~os se indica
Pre.Jijo Notació.,
nada. Decima.tO Oda!
Ox Hexadeiunae
nad(l
L
~ro
Enteronorrr.o.{
EnteroQ.lto...rreci~ié
To.rno.ño
2.
Cristina Bueno F. (2010) 29/290
Tema 2: Análisis léxico 17/22
Tokens 1
- En+ero oormae .
- Entero alto.. predsión . . . :• {.. ~ f
· ,
r en
'- de
G
AFD :
S -+ el, AI oB d .¡- : { 1 .. q 1A ~ . eLo A 1@1 ( terMino.! SUJlijo) .
d.o :: {O .. 9 }•
&~ x H I eLle IQ l(j) ( pQ.rQ el o tl) dl. · : { -1 . ' 1 }
e -t d:z.C I I • precisión nonncll d.3 = {1..91
A.. F}H ~ d3E
~ 0.1+0. ) (dec.AMo.l)
f. .., d3 E' 1 x 1
\--..Jr.--'t-+ Gf.~-"TOK EN (e"l L1 own)
c : nu.m ~= d.;
base ~ -= 10 i
D : t"lllm := nu.m. b~e ... eL;
K : OI.lfl1 ;= dz;
base. , -= g j
H , num ::: d3 ;
basE : = 16;
D': ig ca.r = I Al then el : 10;
¡g co.r =•8 I theo el: 11 ;
nu.m = nllrn 11 bMe. id. ;
1'")E l 19 ( num ~ 2 bhe.n error
:t. 1 iS(OUt1'\) 2n.) l:hen eH'Of'"
"nU:rntro
• Inwnero
Suera de
<fUera de
Cristina Bueno F. (2010) 30/290
Tema 2: Análisis léxico 18/22
PClra tl\c/wr cOlyitl1as de ntro
de \.lOa cetdena se antepone.
uno, barra inve rtido -. \.,
Petra indu ir la
d enn-o de W"Ia cadena se
a"te pone oho. barra -...., \\
-
T odas las lrCUlsi<..iones no
representndas Son ce sos
d e error."
. ..
~en _I:.oken ( CAd.., p) i
~ '--. pos¡ ción .lo ced_,-tri l'I3'-,
Tenemos c:¡ue. receoccer ideo hJk Ad ores c:re ernpie~Q.Il por u.na lebro, ~ de
eol'l i t.ud fl'\ClJUma. 1- .
TCln1ble.'n tenemos. Cetde.tlClS c:¡ue empie~an ~ oca ban COI'I corn·II\QS .
11stril'lSS
(;rcuncUic.a re~~"'ar:
A ~ e.B I Ole I del A
G.R .• , . ., B .... e.S I clB I A- e. C.e I \D I 11
~;mbolo t.e~ - ~I . . ,
mi nal T [ j;íl'rl- D~ \C I "ebolo nc te. rm;ncd]
AFD :
L , Leer . Avnn'la un ca.ruc.te.r en la entr'Cl.dct.
c . Concatenar.
0-1 : <:.aJlt : =1 i
C. + : Canca tena.- e. incrementar , cantidad (cant ++)
'1 -2. : ig c.a.ot ~ 1 ""'en{p : -= BUSoca(' ''5 ( F) ;ig P== Nu ll cneo
p : = INse.rt:ar TS (roJ) ;
e'se
e\se
3-5 : p : :: Nueva Mernori~ ( pa') i
~ 1-. sbin9posición
'la (O/\catenado (y ya. le ne",os ~l/itCldo las
(.()rftll\os y seeuenciQS de. esc.<lpe) .
Cristina Bueno F. (2010) 31/290
Tema 2: Análisis léxico 19/22
E'ercioo: 'flJNiO 2.002, .
cs.
\. Re.tol'l\O de cMb
11
SaJ~ de tinell ,
por 2 B~k.s .
esto:. _30 rmaclo por :
,,\ue se represen I.:arán
,-, " ,/).
de I.ln
enter(lS
Un 8rasmenfo
- N¡{me.ros
- Operadores- a.nbné:l-icos (t-
- Comentarios de dos. tipos :
- Coment:o.rio.s d e línea : Cornien~(l. por 1I • Termina. por
- ComentCl.rio.s de b1oC4ue.: Corniel\!.a. /.. . ,.er mina. '" I.:Ind.ico.r lodos. los. accESOS a ea. ta.lolo. de S: I' m'ilola.s.
T okens :
- l'J¡{rnero!> enteros ,
Ope.radores añtméticos.
','
• eKc.epto /:} 'ti •
"
eLB l /e I del A 1+ I .. I -elB I >. COtl\entQri o de. e.lnea..,.- ...,/ D I .... E 10 di v',sióll -
C1 O Ia-;CDmentorio de. b1o~C"2.E I"" F A, ~~ I cgE I 'If.F\
~ N,O _ se. . ~ene.ra \::ok!.n. .Se. vu.e\l/e al .pr ioc.i:.pio .
Con los CoMentarios se salto. pro~rarn C\ h o.sta.
'C.ncu.en~ el Sino.\ del comento.no.
A ~
B ~
C-+
O -)
o Podrío. sepo.rnrlo
e.n 3 estados
(W\O por opero.dor).
del 1 = Deli mit.ador del entero .
d.eJ 2. = CucJc:\uier ca..-acte.- e "apto 1 'a . ,
X : ~en_ lokw (op_arit ., c.cd.i 3o)¡. '-? -;-I-} "
ex" 28 = '1'bits
'1 -2 : ig nLlm ~ P l~ll
erro r ( n~me,.o Suero de ran~o) ;
e1se
~ - token ( entero , nurn ) i
Cristina Bueno F. (2010) 32/290
Tema 2: Análisis léxico 20/22
I-to.blaoclo ",\loro. ele la acs-hón de les icl.eot.:iJkadores, 1\05 encontramos eco
~e a.\l'YIl1uno..r el le1-erno. puede pro\lOco. r Ul\ pl"Obl"(.JYIa de espado. Si en el leo3"'~e
f\O hl1'Y restricción en c\4onto cJ t:amoj;o del le...elYlo¡ e c.ómo tintemos \o.. 1$ farQ.
poder al /YlaGe.nario!> ?TetleO'los 2. opc.iones:
- R~e,...,(lr \U'I esPQc.Ío muy ~r",ode po.ra. poder me.ter los id e.n-\lg ic.ad ores
m\)y lo.r~o.1 =} NO ES RE.COMEÑDABI.E.
- Poner en el c.o.mpo de la. "1'S lAIl puntero hacia el identí g ic.a dor ( h a ciu
e l "e.c.tor dende esto..o a.Il'l"loceno.dos. los leA.erna.s).
luemo.
/í,/~ [ 'ldenhJioad or _ lo.r~uí.s;moJ:.. [ NlO)l,.$J
j. .
TS
Cristina Bueno F. (2010) 33/290
Tema 2: Análisis léxico 21/22
Cristina Bueno F. (2010) 34/290
Tema 2: Análisis léxico 22/22
Recommended