Saben de compiladores???
Publicado por Juan Manuel (1 intervención) el 18/11/2004 17:12:31
URGENTE: Necesito un algoritmo para resolver la notacion de Rosin en Compiladores en cualquier lenguaje.... de antemano Gracias
Valora esta pregunta


0
# Definir una estructura para los nodos del árbol de sintaxis abstracta (AST)
Estructura NodoAST
Valor
Hijos
# Función para analizar la notación de Rosin y construir el AST
Función analizarRosin(notacion)
pila = PilaVacia()
raiz = NodoAST(Valor = "Inicio", Hijos = [])
pila.Apilar(raiz)
nodoActual = raiz
Para cada símbolo en notacion
Si símbolo es un terminal o no terminal
nuevoNodo = NodoAST(Valor = símbolo, Hijos = [])
nodoActual.Hijos.Agregar(nuevoNodo)
pila.Apilar(nuevoNodo)
nodoActual = nuevoNodo
Fin Si
Si símbolo es '|'
pila.Desapilar()
nodoActual = pila.Tope()
Fin Si
Si símbolo es ')'
pila.Desapilar()
Fin Si
Fin Para
Devolver raiz
# Ejemplo de uso
notacionRosin = "E -> E + T | T; T -> T * F | F; F -> ( E ) | id;"
arbolSintaxisAbstracta = analizarRosin(notacionRosin)
# Ahora puedes utilizar el árbol de sintaxis abstracta para generar código, realizar análisis semántico, etc.