Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ÁRBOLES GRAMATICALES
3.1
G1.
G2.
3.2
{𝜆,aa,aaaa,aaaaaa,aaaaaaaa}
Gramática Producciones
{a,aa,aaa,aaaa, ...}
Gramática Producciones
𝛴 𝑇 = {𝑎} 𝛴 𝑁𝑇 = {𝑆, 𝐴} 𝑃 1 :𝑆 → 𝐴
𝐴 → 𝑎 | 𝐴𝑎
4. Programando un árbol
Nombre Descripción
4.2.1 initTree()
recibe la raíz como parámetro, un nivel del árbol. Este método es recursivo. Inicia con el
símbolo inicial axiomático y verifica con el método isVarNotTerminal() que sus hojas
tengan una variable terminal. En caso de tenerla crea una una nueva hoja para ese nodo
con el método createNode() y siguiente vuelve a llamar el método initTree() para realizar
la construcción del árbol.
Si la hoja es una palabra la guarda en una lista de palabras
4.2.2 isVarNotTerminal()
Este metodo verifica que el dato entrante contenga una variable no terminal, si la tiene
retorna verdadero en caso contrario será una palabra y retorna falso
4.2.4 getVarNotTerminal()
Este metodo recibe la información del nodo y busca la variable terminal que tiene. Esto lo
hace comparando cada carácter con la lista de variables terminales que ya están guardadas
4.2.5 getProduction()
Este metodo retorna un objeto de tipo VarNotTerminal en la cual se guarda la variable no
terminal y sus correspondientes producciones.
public VarNotTerminal getProduction(String info) {
for (VarNotTerminal varNotTerminal : listVarNotTerminal) {
if (info.contains(varNotTerminal.getVarNotTerminal())) {
return varNotTerminal;
}
}
return null;
}
4.2.6 searchListWorld()
En la creación del árbol las palabra encontradas se guardaron en una lista. Este método
recibe las palabras a buscar y la busca en la lista. Retorna un mensaje de aviso informando
si la encuentra o no
}
}
return "La palara no existe";
}
4.2.7 Metodos importantes del controlador
En el controlador tenemos los siguientes metodos, que interactuan con la vista motivo por el
cual no explicare como se obtiene la información pero sí que es lo que se hace con ella.
initManagerTree():
Este método obtiene de la vista el Símbolo inicial axiomático, el conjunto de variables no
terminales y el conjunto de variables terminales. Una vez obtenido estos datos se inicia la
clase ManagerTree que es la que controla el Árbol gramatical.
addProductionRoot():
Este método busca la producción del símbolo inicial axiomático y se lo envía a
ManagerTree.init() donde se crea el nodo raíz con sus correspondientes hijos obtenidos de
su producción.
createProductions():
Este método obtiene todas las producciones y se las envía a ManagerTree.addProduction()
donde se guardan en una lista
4.3 video
Link del video:
Archivo de codigo fuente en los anexos