|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.ObjectGramaticas.ReglaAbstracta
Gramaticas.ReglaGIC
public class ReglaGIC
Clase para la implementacion interna de las reglas de una Gramatica Independiente
del Contexto (GIC
). Se implementa mediante una serie de atributos descritos pormenorizadamente
mas abajo.
Al contrario que en otras clases, para obtener el objeto regla asociado a su especificacion
en formato string (ver GIC
) no emplearemos su constructor, sino el metodo estatico
listaReglaGIC(String)
, que descompone
Field Summary | |
---|---|
protected java.util.ArrayList |
drcha
Parte derecha de la regla. |
protected No_terminal |
izqda
Parte izquierda de la regla. |
Constructor Summary | |
---|---|
ReglaGIC(ReglaGIC regla)
Crea una regla copia de otra |
|
ReglaGIC(java.lang.String i,
java.lang.String d)
Dadas las partes izquierda y derecha de una regla "atomica" de una gramatica (es decir, sin "|" en la parte derecha), crea el objeto Regla asociado. |
Method Summary | |
---|---|
protected boolean |
binarizada()
Comprueba si la regla esta "binarizada" ---i.e. la parte derecha consta de 1 terminal o 1 terminal+1 no terminal |
boolean |
equals(java.lang.Object r)
|
protected boolean |
es_hoja()
Comprueba si es una regla "hoja" ---i.e. con solo terminales en la parte derecha. |
(package private) boolean |
es_regla_binaria_CYK()
Comprueba, desde un punto de vista estrictamente sintactico, si es una regla binaria en FNC (i.e. si es de la forma A->BC) |
boolean |
es_regla_Epsilon()
Comprueba si se trata de una regla-Epsilon |
boolean |
es_regla_FNC()
Comprueba, desde un punto de vista estrictamente sintactico, si una regla esta en FNC (i.e. si es de la forma A->a o A->BC) |
boolean |
es_regla_FNC(No_terminal s)
Comprueba, desde un punto de vista estrictamente sintactico, si una regla esta en FNC (i.e. si es de la forma A->a o A->BC), permitiendo tambien el caso S->Epsilon |
boolean |
es_regla_S_Epsilon(No_terminal s)
Comprueba si es una regla S->Epsilon |
(package private) boolean |
es_regla_unaria_CYK()
Comprueba, desde un punto de vista estrictamente sintactico, si es una regla unaria en FNC (i.e. si es de la forma A->a) |
protected boolean |
es_regular()
Comprueba si una regla es "regular" (i.e. su parte derecha contiene a lo sumo 1 no terminal, y este debera ser el ultimo simbolo de la regla) |
java.util.ArrayList |
get_drcha()
Devuelve el ArrayList de objetos Simbolo que implementa
la parte izquierda de la regla. |
No_terminal |
get_izqda()
Devuelve el No_terminal que implementa la parte izquierda de la regla. |
int |
hashCode()
|
static java.util.LinkedList |
listaReglaGIC(java.lang.String s)
Dada una regla de una gramatica, devuelve una lista con los objetos ReglaGIC
asociados a las diferentes reglas "atomicas" que contiene, una por cada una de las partes
izquierdas separadas por '|'. |
boolean |
matchea_1terminal_CYK(Terminal t)
Comprueba si el terminal en cuestion matchea con la parte derecha de esta regla |
boolean |
matchea_2noterminales_CYK(No_terminal x,
No_terminal y)
Comprueba si el par de no terminales en cuestion matchea con la parte derecha de esta regla |
java.lang.String |
toString()
Devuelve la especificacion en formato string de la regla (vease GIC ) |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
protected No_terminal izqda
No_terminal
que
representa el no terminal que constituye la parte izquierda de una regla en una
GIC. De esta forma, dada una regla:
protected java.util.ArrayList drcha
ArrayList
de
objetos de tipo Simbolo
que representan los diferentes terminales
y no terminales de la parte derecha de una GIC. Dichos objetos tipo Simbolo son
almacenados con el mismo orden y tipo (Terminal
o No_terminal
)
que en la parte derecha de la regla. De esta forma, dada una regla:Terminal
representando el 'a', y el segundo un objeto No_terminal
representando el 'B'.
Constructor Detail |
---|
public ReglaGIC(java.lang.String i, java.lang.String d) throws G_Exception
i
- String con la parte izquierda de la reglad
- String con la parte derecha de la regla
G_Exception
public ReglaGIC(ReglaGIC regla) throws G_Exception
regla
- Regla original
G_Exception
Method Detail |
---|
public boolean equals(java.lang.Object r)
equals
in class java.lang.Object
public int hashCode()
hashCode
in class java.lang.Object
public java.lang.String toString()
GIC
)
toString
in class java.lang.Object
Object.toString()
public static java.util.LinkedList listaReglaGIC(java.lang.String s) throws G_Exception
ReglaGIC
asociados a las diferentes reglas "atomicas" que contiene, una por cada una de las partes
izquierdas separadas por '|'. De esta forma, dada la reglaLinkedList
con dos objetos ReglaGIC: uno para la
regla S -> a B, y otro para la regla S -> $. En el caso de que la regla
sea "atomica" (es decir, sin '|' en su parte izquierda), devolvera una lista con un unico
objeto, el ReglaGIC asociado a dicha regla.
s
- Regla en formato string
G_Exception
public No_terminal get_izqda()
No_terminal
que implementa la parte izquierda de la regla.
public java.util.ArrayList get_drcha()
ArrayList
de objetos Simbolo
que implementa
la parte izquierda de la regla.
protected boolean es_regular()
true/false
segun sea o no una regla "regular"protected boolean es_hoja()
true/false
segun sea o no regla "hoja"protected boolean binarizada()
true/false
segun la regla este o no "binarizada"public boolean es_regla_Epsilon()
true/false
segun sea o no una regla-Epsilonpublic boolean es_regla_S_Epsilon(No_terminal s)
s
- Axioma S de la gramatica
true/false
segun sea o no una regla S->Epsilonboolean es_regla_unaria_CYK()
true/false
segun este o no en FNCboolean es_regla_binaria_CYK()
true/false
segun este o no en FNCpublic boolean es_regla_FNC()
true/false
segun este o no en FNCpublic boolean es_regla_FNC(No_terminal s)
s
- Axioma S de la gramatica
true/false
segun este o no en FNCpublic boolean matchea_1terminal_CYK(Terminal t)
t
- Terminal con el que matchear
true/false
segun matchee o nopublic boolean matchea_2noterminales_CYK(No_terminal x, No_terminal y)
x
- Primer no terminal con el que matcheary
- Segundo no terminal con el que matchear
true/false
segun matchee o no
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |