You are on page 1of 6

Analizador léxico de direcciones de correo Electrónico

Analizador Léxico

Token Lexema
Letra a………..z
Número 0………….9
Palabra Secuencia de letras, números o especiales
sin espacios.
Especial ¡ ! ¿ ? # $ % ^ & * ( ) { } [ ] / \ | < > + = - _
~
Separad . , ; :
or
TLD Com, org, es
Dominio Hotmail, gmail, ozu, es

AUTOMATA FINITO NO DETERMINISTA

Números

Letras

35
0 1 2 3 4
1 @ TLD
Números, Dominio .
letras,
Especiales
Especiales
Gramática propuesta para direcciones de Correo Electrónico

Determinar lo siguiente:

• Gramática ( VT, VN , S ,R )

{ a, b ,c ,d, e , f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, 1,2 ,3 ,4 ,
VT
5, 6, 7, 8, 9, 0, ¡, !, ¿, ?, #, @, $, %, ^, &, *, (, ), { , }, [, ] , / ,\, |, <, > , +, =, -,
=
_, ~, Nombres, Apellidos, es, com, net, org, edu , gov, gob, mil, name, hotmail,
yahoo, ozu, gmail, palabra }
VN= { S, Dirección, Nombre, dirección, Usuario, letra, Complemento, Numero,
Especial, NombreDom, SubDominio, TLD, Apellidos, Palabra }
R 123
=

S → Dirección | Nombre Dirección | Otro S


Dirección → Usuario@Dominio
Usuario → letra Complemento | Especial Complemento
Complemento → Nombre Complemento |Letra Complemento | Número Complemento
| Especial Complemento | Letra| Numero |especial | Nombre
Dominio → NombreDom Especial SubDominio
SubDominio → TLD
NombreDom → yahoo | hotmail | gmail | ozu
TLD → com | org | es
Nombre → Nombres Apellidos | Apellidos , Nombres | Nombres | Apellidos
Nombres → 3Palabras | 2Palabras | Palabra
Apellidos → 4Palabras | 3Palabras | 2Palabras | Palabra
2Palabras → Palabra Palabra
3Palabras → Palabra 2Palabras
4Palabras → Palabra 3Palabras
Nombres → pepe| luismarcelo | rocio | carrion | aroma | rodri | luis | angel |majo|
mafer | edison
Otro → Letra Otro | Número Otro | Especial | Separador
Especial → ¡ | !|¿|?|#|$|%|^|&|*| ( | ) | { | } | [ | ] | / | \ | |
| < | > | + | = | - | _ | ~ | .|
Letra → a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | p | q | r | s | t | u | v | w | x | y | z
Numero →1|2|3|4|5|6|7|8|9|0
DIAGRAMA DEL AUTÓMATA
1. Ejemplo de una dirección correo
rodri_c_88@hotmail.es

Nombre Dirección

Nombres Usuario @ Dominio

rodri especial Complemento


NombreDom Especial SubDominio

_ Letra Complemento hotmail


. TLD

c especial Complemento
es

_ numero Complemento

8 Numero

8
REGLAS SEMÁNTICAS PROPUESTA PARA DIRECCIONES DE CORREO ELECTRÓNICO

S → Dirección| Nombre Dirección | Otro S


Print “Dirección.val”
Print “Nombre.val & Dirección.val”
Print Basura.val & S.val

Dirección → Usuario@Dominio
Dirección.val= Usuario.val & “@” & Dominio.val

Usuario → Letra Complemento | especial Complemento


Usuario.val = Letra.Lexema & Complemento.val
Usuario.val = especial.val & Complemento.val
Complemento → Nombre Complemento |Letra Complemento | Número
Complemento | Especial Complemento | Letra | Numero |
especial | Nombre

Complemento.val = Letra.Lexema & Complemento.val


Complemento.val = Número.Lexema & Complemento.val
Complemento.val = especial.Lexema & Complemento.val
Complemento.val = Letra.Lexema
Complemento.val = Numero.Lexema
Complemento.val = Nombre.Lexema

Dominio → NombreDom Especial SubDominio


Dominio.val = NombreDom.val & especial.val & SubDominio.val

SubDominio → TLD
SubDominio.val = TLD.Lexema

NombreDom → yahoo| hotmail | gmail | ozu


NombreDom.val = yahoo.valex
NombreDom.val = hotmail.valex
NombreDom.val = gmail.valex
NombreDom.val = ozu.valex
TLD → org | com | es
TLD.Lexema = org.valex
TLD.Lexema = com.valex
TLD.Lexema = es.valex

Nombre → Nombres Apellidos | Apellidos , Nombres


Nombre.val = Nombres.val & Apellidos.val & Apellidos.val
Nombre.val = Nombres.val & Apellidos.val & Apellidos.val
Nombres → 3Palabras | 2Palabras | Palabra
Nombres.val = 3Palabras.valex
Nombres.val = 2Palabras.valex
Nombres.val = Palabra.valex

Apellidos → 4Palabras | 3Palabras | 2Palabras | Palabra


Apellidos.val = 4Palabras.val Apellidos.valex = “ ”
Apellidos.val = 3Palabras.val Apellidos.valex = “ ”
Apellidos.val = 2Palabras.val Apellidos.valex = “ ”
Apellidos.val = Palabra.Lexema Apellidos.valex = “ ”
Apellidos.val = “” Apellidos.valex = “”

2Palabras → Palabra Palabra


2Palabras.val = Palabra.Lexema & “ ” & Palabra.Lexema
3Palabras → Palabra 2Palabras
3Palabras.val = Palabra.Lexema & “ ” & 2Palabras.val
4Palabras → Palabra 3Palabras
4Palabras.val= Palabra.Lexema & “ ” & 3Palabras.val
Especial → ¡| !| ¿| ?| #| $| % | ^| &| *| ( | ) | { | }| [| ]| /| \| || <| >| +| = | -
| _| ~| .|
Especial.lexema= ¡.valex | ¡.valex | ¿.valex | .valex
Letra → a|b|c|d|e|f|g|h|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|
y|z
Letra.lexema= a.valex| b.valex|c.valex…………..| z.valex|
Numero → 1|2|3|4|5|6|7|8|9|0
Numero.lexema= 1.valex|…….| 9.valex
DIAGRAMA DE AUTOMATA

Nombre.lexema Dirección.val

Nombres.val Usuario.val @ Dominio.val

rodri .valex especial.lexema Complemento.val NombreDom.val Especial.lexema


SubDominio.val

_ Letra.lexema Complemento.val hotmail.valex .


TLD.lexema

c especial.valex Complemento.val es.valex

_ número.valex Complementoval

8 Numero.valex

You might also like