An - PowerPoint PPT Presentation

About This Presentation
Title:

An

Description:

An lisis Sint ctico Determinar si una cadena puede ser generada Analizador sint ctico Es posible constru r el rbol? M todos: Descendente De la ra z a las ... – PowerPoint PPT presentation

Number of Views:45
Avg rating:3.0/5.0
Slides: 18
Provided by: Leone162
Category:
Tags: isis

less

Transcript and Presenter's Notes

Title: An


1
Análisis Sintáctico
  • Determinar si una cadena puede ser generada

2
Analizador sintáctico
  • Es posible construír el árbol?
  • Métodos
  • Descendente
  • De la raíz a las hojas
  • Popular y eficiente
  • Ascendente
  • De las hojas a la raíz
  • Más gramáticas

3
Analizador descendente
  • Algoritmo
  • Seleccione una producción y construya los hijos
  • Encuentre el siguiente nodo (no terminal)
  • Si hay otro nodo aplicar recursivamente
  • Si no hay más nodos
  • Si la cadena coincide entonces ACEPTAR
  • Si no coincide, probar recursivamente

4
Ejemplo
  • Gramática de tipos en Pascal
  • Tipo -gt Simple id
  • array Simple of Tipo
  • Simple -gt integer char
  • núm puntopunto núm

5
array núm puntopunto núm of integer
  • Analizar sintácticamente

6
Descendente (símbolo inicial)
  • Function Tipo()
  • Resu Simple()
  • If Not Resu Then
  • Resu Match() And Match(id)
  • If Not Resu Then
  • Resu Match(Array) And Match()
  • And Simple() And Match()
  • And Match(of) And Tipo()
  • End
  • End
  • Tipo Resu
  • End Function

7
Descendente (nodo)
  • Function Simple()
  • Resu Match(integer)
  • If Not Resu Then
  • Resu Match(char)
  • If Not Resu Then
  • Resu Match(núm)
  • And Match(puntopunto)
  • And Match(núm)
  • End
  • End
  • Simple Resu
  • End Function

8
Match() - parea()
  • Function Match(Valor)
  • Tmp GetNextToken()
  • If Tmp Valor Then
  • Match True
  • / Avanzar posición en entrada /
  • Else
  • Match False
  • End If
  • End Function

9
Match() simplificado
  • Function Match(Valor)
  • Match GetNextToken() Valor
  • End Function
  • Ojo queda pendiente avanzar la entrada

10
GetNextToken()
  • Inteligente
  • Reconoce separadores
  • Espacio, fin de línea, tabuladores, etc.
  • Token especiales gt,gt,lt,lt
  • Palabras clave While de WhileFlag

11
Recursión Izquierda
  • Problema para análisis sintáctico

12
Gramática infijo
  • Expr -gt Expr Término
  • Expr -gt Expr - Término
  • Expr -gt Término
  • Término -gt 0
  • Término -gt 1
  • Término -gt 2
  • ....
  • Término -gt 9

Recursión izquierda
13
Análisis descendente
  • Function Expr()
  • Resu Expr() And Match() And Término()
  • If Not Resu Then
  • Resu Expr() And Match(-) And Término()
  • If Not Resu Then
  • Resu Término()
  • End
  • End
  • Expr Resu
  • End Function

14
Recursión izquierda
  • Ojo no se puede cambiar la gramática
  • Gramática iguales si árboles iguales
  • NT -gt NT t1 t2
  • NT No Terminal
  • t1, t2 terminales
  • Expr -gt Expr Término

15
Corrección de recursión izquierda
  • NT -gt NT t1 t2
  • t2 t1 t1 t1 ... t1
  • t2 t1
  • NT -gt t2 R
  • R -gt t1 R nil
  • t2 t1 t1 t1 ... t1
  • t2 t1

16
Gramática infijo corregida
  • Expr -gt Término Resto
  • Resto -gt Expr - Expr nil
  • Término -gt 0
  • Término -gt 1
  • Término -gt 2
  • ....
  • Término -gt 9

17
Proyecto 1
  • Gramática de nombres y direcciones de email
  • Reglas semánticas
  • Reconocedor-extractor de emails mejorado
  • GetNextToken()
  • Match()
  • Análizador descendente
Write a Comment
User Comments (0)
About PowerShow.com