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