|
||||||||||
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.Object
public 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_ESTADOS
Estado.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 |