|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.ObjectAF.AFabstracto
public abstract class AFabstracto
[Super]Clase abstracta para la implementacion interna de un automata finito.
Al tratarse de una clase abstracta deberemos trabajar NO con objetos de tipo AFabstracto
sino con objetos de tipo AF, ya que es la clase que implementa la superclase
abstracta AFabstracto.
La implementacion interna del automata se realiza en base a diferentes atributos que
almacenan los estados, alfabeto, estado inicial, etc. del automata.
Estos atributos se describen pormenorizadamente mas abajo.
| Field Summary | |
|---|---|
protected java.util.LinkedHashSet |
alfabeto
Alfabeto aceptado por el automata. |
protected java.util.LinkedHashSet |
arcos
Conjunto de arcos o transiciones del automata. |
protected java.util.LinkedHashSet |
estados
Conjunto de estados del automata. |
protected java.util.LinkedHashSet |
finales
Conjunto de estados finales del automata. |
protected static int |
i
Variable auxiliar para la numeracion de los ficheros auxiliares creados para los dibujos de los automatas. |
protected Estado |
inicial
Estado inicial del automata. |
protected int |
MAX_ESTADOS
Numero maximo de estados admitidos por el automata (1000 estados). |
| Constructor Summary | |
|---|---|
AFabstracto(java.util.LinkedHashSet qs,
java.util.LinkedHashSet ab,
Estado i,
java.util.LinkedHashSet as,
java.util.LinkedHashSet fs)
NOTA: Al ser creado e inicializado el objeto, el constructor anhade a mayores, automatica y explicitamente, el epsilon (caracter especial Terminal.EPSILON) al alfabeto del automata. |
|
AFabstracto(java.lang.String af)
|
|
| Method Summary | |
|---|---|
boolean |
check_arco(Arco a)
Comprueba si un arco/transicion es valido |
boolean |
contains_arco(Arco a)
Comprueba si el automata contiene un arco/transicion determinado |
boolean |
contains_estado(Estado q)
Comprueba si el automata contiene un estado determinado |
boolean |
contains_terminal(Terminal t)
Comprueba si el automata contiene en su alfabeto un terminal determinado |
Estado |
create_estado()
Crea un nuevo estado distinto a los actualmente almacenados en el automata. |
private void |
createDOT(java.lang.String fdot)
Crea una representacion del automata en el formato aceptado por el programa 'dot' del Graphviz. |
private void |
createPIC(java.lang.String fdot,
java.lang.String fpic)
Crea una representacion del automata en formato JPG a partir de su representacion en el formato de entrada del programa 'dot' del Graphviz. |
void |
dibujar(boolean p)
Crea una representacion grafica del automata empleando el programa dot de Graphicviz. |
boolean |
esFinal(Estado q)
Comprueba si un estado es final |
boolean |
esInicial(Estado q)
Comprueba si un estado es inicial |
java.lang.String |
get_tabla_transiciones()
Obtiene la tabla de transiciones del automata. |
java.util.LinkedHashSet |
getAlfabeto()
Devuelve el alfabeto del automata |
java.util.LinkedHashSet |
getArcos()
Devuelve el conjunto de arcos/transiciones del automata |
java.util.LinkedHashSet |
getArcosPpo(Estado q)
Devuelve el conjunto de arcos/transiciones del automata que salen de un estado dado |
java.util.LinkedHashSet |
getArcosPpoTerminal(Estado q,
Terminal t)
Devuelve el conjunto de arcos/transiciones del automata que salen de un estado dado y estan etiquetados con un terminal dado |
java.util.LinkedHashSet |
getEstados()
Devuelve el conjunto de estados del automata |
java.util.LinkedHashSet |
getFinales()
Devuelve el conjunto de estados finales del automata |
Estado |
getInicial()
Devuelve el estado inicial del automata |
java.lang.String |
toString()
Devuelve la especificacion del automata en formato string (vease AFabstracto(String)). |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected final int MAX_ESTADOS
protected java.util.LinkedHashSet estados
LinkedHashSet de objetos de tipo Estado.
protected java.util.LinkedHashSet alfabeto
LinkedHashSet de objetos de tipo Terminal.
protected Estado inicial
Estado.
protected java.util.LinkedHashSet arcos
LinkedHashSet de objetos de tipo Arco.
protected java.util.LinkedHashSet finales
LinkedHashSet de objetos de tipo Estado.
protected static int i
| Constructor Detail |
|---|
public AFabstracto(java.lang.String af)
throws AF_Exception,
G_Exception
af - Especificacion del automata en formato string. Primeramente, enumeraremos
los identificadores de los estados del automata, no mas de
MAX_ESTADOS), separados por espacios y
con un punto y coma cerrando la lista. Se puede emplear cualquier cadena de caracteres
como identificador de un estado (vease Estado).Terminal). Terminal.EPSILON) al alfabeto del automata. Si bien esto no es
formalmente correcto, se trata de un recurso de implementacion que permite simplificar
el funcionamiento del automata.estado_origen estado_destino simbolo;
donde estado_origen y estado_destino deben ser
estados previamente declarados, y simbolo debe ser un simbolo de entrada
previamente declarado o bien el caracter especial epsilon (Terminal.EPSILON).
AF_Exception
G_Exception
public AFabstracto(java.util.LinkedHashSet qs,
java.util.LinkedHashSet ab,
Estado i,
java.util.LinkedHashSet as,
java.util.LinkedHashSet fs)
throws AF_Exception,
G_Exception
Terminal.EPSILON) al alfabeto del automata. Si bien esto no es
formalmente correcto, se trata de un recurso de implementacion que permite simplificar
el funcionamiento del automata.
qs - Conjunto de estados del automataab - Alfabeto del automatai - Estado inicialas - Conjunto de arcos/transiciones del automatafs - Conjunto de estados finales
AF_Exception
G_Exception| Method Detail |
|---|
public java.util.LinkedHashSet getEstados()
public Estado getInicial()
public java.util.LinkedHashSet getFinales()
public java.util.LinkedHashSet getAlfabeto()
public java.util.LinkedHashSet getArcos()
public java.util.LinkedHashSet getArcosPpo(Estado q)
q - Estado origen
public java.lang.String toString()
AFabstracto(String)).
toString in class java.lang.Objectpublic boolean esInicial(Estado q)
q - Estado a comprobar
public boolean esFinal(Estado q)
q - Estado a comprobar
public boolean contains_estado(Estado q)
q - Estado a comprobar
public boolean contains_terminal(Terminal t)
t - Simbolo terminal a comprobar
public boolean contains_arco(Arco a)
a - Arco/transicion a comprobar
public boolean check_arco(Arco a)
a - Arco/transicion a comprobar
public Estado create_estado()
throws AF_Exception
q0, q1,
q2, etc., empezando a numerar en el qN minimo necesario
para no coincidir con ningun identificador de los estados actuales del automata.
AF_Exception - se ha alcanzado el numero maximo de estados permitidos
MAX_ESTADOSEstado.get_estado_diferente(Collection)public java.lang.String get_tabla_transiciones()
private void createDOT(java.lang.String fdot)
throws java.io.IOException
fdot - Fichero .dot en el que se almacenara la representacion.
java.io.IOException
private void createPIC(java.lang.String fdot,
java.lang.String fpic)
throws java.io.IOException
fdot - Fichero .dot que almacena la representacion en el formato
de entrada de 'dot' de Graphviz.fpic - Fichero en el que se almacenara la representacion en formato JPG.
java.io.IOException
public void dibujar(boolean p)
throws java.io.IOException
p - Switch indicando si se debe o no mostrar por pantalla la grafica JPG.
java.io.IOException
public java.util.LinkedHashSet getArcosPpoTerminal(Estado q,
Terminal t)
q - Estado origent - Terminal etiqueta del arco
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||