TEMA 2. : ANALlSIS LEXICO

Anuncio
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
Descargar