Gramaticas
Class Cadena

java.lang.Object
  extended by Gramaticas.Cadena

public class Cadena
extends java.lang.Object

Clase para la implementacion interna de cadenas de entrada (cadenas de simbolos terminales) en automatas, analizadores sintacticos, maquinas de Turing, etc. Se implementa mediante un ArrayList de objetos tipo Terminal en el mismo orden. De este modo, una cadena debera estar formada por una secuencia de caracteres 'a'..'z' en minuscula.

Por ejemplo, dado un string "hola" (u "h o l a"), este es transformado (vease Cadena(String)) en un ArrayList con los siguientes elementos:
1er elemento: objeto Terminal con identificador id='h'
2o elemento: objeto Terminal con identificador id='o'
3er elemento: objeto Terminal con identificador id='l'
4o elemento: objeto Terminal con identificador id='a'

Version:
Revision 1.0.0, 06/19/06
Author:
Jesus Vilares ( jvilares@udc.es)

Field Summary
private  java.util.ArrayList cadena
           
 
Constructor Summary
Cadena(java.lang.String s)
          Convierte un string en un objeto Cadena.
 
Method Summary
 Terminal get(int indice)
          Devuelve el terminal de una posicion dada de la cadena
 boolean isEmpty()
          Comprueba si la cadena esta vacia (i.e. no quedan terminales por leer o solo epsilons)
 boolean isEpsilon()
          Comprueba si se trata de la cadena vacia (secuencia de Epsilons)
static Cadena loadCadena()
          Carga y crea una Cadena a partir de su descripcion almacenada en un fichero de texto.
static Cadena loadCadena(java.lang.String path)
          Carga una Cadena a partir de su descripcion almacenada en un fichero de texto.
 int size()
          Devuelve la longitud de la cadena
 Cadena subcadenaFinal(int i)
          Devuelve la subcadena desde una posicion dada al final de la cadena
 java.lang.String toString()
          Devuelve la representacion de la cadena en formato string.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

cadena

private java.util.ArrayList cadena
Constructor Detail

Cadena

public Cadena(java.lang.String s)
       throws G_Exception
Convierte un string en un objeto Cadena.

Parameters:
s - String a convertir. Debe estar formado por caracteres 'a'..'z' en minuscula. Tambien admite separadores entre los caracteres, que seran ignorados.
Throws:
G_Exception
Method Detail

loadCadena

public static Cadena loadCadena(java.lang.String path)
                         throws java.io.IOException,
                                G_Exception
Carga una Cadena a partir de su descripcion almacenada en un fichero de texto. Las lineas encabezadas por '#' son ignoradas.

Parameters:
path - path completo al archivo a procesar
Returns:
Cadena cargada
Throws:
java.io.IOException
G_Exception

loadCadena

public static Cadena loadCadena()
                         throws java.io.IOException,
                                G_Exception
Carga y crea una Cadena a partir de su descripcion almacenada en un fichero de texto. Las lineas encabezadas por '#' son ignoradas. El fichero es seleccionado mediante un cuadro de dialogo.

Returns:
Cadena cargada
Throws:
java.io.IOException
G_Exception

toString

public java.lang.String toString()
Devuelve la representacion de la cadena en formato string.

Overrides:
toString in class java.lang.Object
See Also:
Object.toString()

size

public int size()
Devuelve la longitud de la cadena

Returns:
Longitud de la cadena

get

public Terminal get(int indice)
Devuelve el terminal de una posicion dada de la cadena

Parameters:
indice - Posicion del terminal (0..size()-1)
Returns:
Terminal en esa posicion

isEmpty

public boolean isEmpty()
Comprueba si la cadena esta vacia (i.e. no quedan terminales por leer o solo epsilons)

Returns:
true/false segun este o no vacia

subcadenaFinal

public Cadena subcadenaFinal(int i)
                      throws java.lang.IndexOutOfBoundsException,
                             G_Exception
Devuelve la subcadena desde una posicion dada al final de la cadena

Parameters:
i - Posicion inicial (0..longitud)
Returns:
Subcadena final de la cadena original (vacia cuando i==longitud)
Throws:
java.lang.IndexOutOfBoundsException - Indice no valido (i<0 || i>longitud)
G_Exception

isEpsilon

public boolean isEpsilon()
Comprueba si se trata de la cadena vacia (secuencia de Epsilons)

Returns:
true/false segun se trate o no de la cadena vacia