Next: 6.3.4 Proceso de actualización 
Up: 6.3 Integración con el 
 Previous: 6.3.2 Estructuras de datos 
 
Para poder realizar una actualización consistente de la
información del componente léxico, lo cual implica mantener la coordinación
entre todas las lista que componen la estructura mediante la cual se
implementa la variable token, se ha definido un conjunto de
funciones que evitan la realización de actualizaciones 
manuales de tal variable.
Estas funciones han sido testeadas y se han
mostrado seguras en el tratamiento de la información del componente léxico.
Siempre que se deba modificar cualquier dato almacenado en 
token se debe hacer uso de ellas, evitando el acceso ad hoc,
fuente potencial de problemas de inconsistencia de la información.
A continuación se muestra una lista de las funciones que se han
considerado. Todas ellas reciben al menos un  argumento: un puntero a
una estructura ice_lex_object. Si hay argumentos adicionales,
se indican en la descripción que se hace de cada una de ellas.
En primer lugar se van a mostrar las funciones que realizan el proceso
de inicialición de la variable token y del conjunto de las
listas de enteros y cadenas de carácteres:
-  reset_token. Esta función vacía el contenido de una
        variable de tipo ice_lex_token, lo cual significa eliminar
        cada una de las listas que forman los distintos campos, para lo cual se
        utilizan las funciones RESET_INT_LIST y 
        RESET_STRING_LIST.
 -  new_column_token. Función que crea un nuevo elemento al
        comienzo de cada una de las listas almacenadas en una variable
        de tipo ice_lex_token,
        estableciendo su valor a No-Aplicable. Esto se corresponde con la
        inicialización de un nuevo tipo de componente léxico para una
        palabra
. Nótese la diferencia con la función
        precedente, que realizaba la incialización al comienzo del
        reconocimiento de una palabra.
 -  copy_column_token. Esta función actúa como la
        precedente, pero en vez de rellenar el valor de los nuevos elemntos de
        las listas a No-Aplicable, copia en ellos el contenido del elemento
        siguiente en la lista
.
 -  rm_column_token. Elimina el primer elemento de todas las
        listas. Esto equivale a eliminar el último componente léxico detectado en el
        reconocimiento de una palabra determinada.
 
A continuación se muestran las funciones encargadas de la
actualización de los valores almacenados en las listas de los
diferentes campos incluidos en la variable token. Cada función 
recibe al menos como argumento un puntero a una estructura 
ice_lex_token.
-  set_wrd_token. Recibe como argumento adicional un
        puntero a char, es decir, una cadena de caracteres. Copia dicha
        cadena en el campo word de la estructura 
        ice_lex_token. Esto significa que la cadena
        pasada como argumento no sufre ningún tipo de
        modificación.
 -  set_cat_token. Recibe como argumento adicional un valor
        entero que indica la categoría la que pertenece la palabra. Esta
        función establece el primer elemento de la lista del campo 
        category a dicho valor. Para ello utiliza las funciones 
        NEXTL_INT_LIST y CONS_INT_LIST, con lo cual
         se machaca el valor No-Aplicable introducido en la inicialización
        del componente léxico llevada a cabo por la función 
        new_column_token.
 -  set_gen_token. Recibe como argumento un valor entero que
        indica el género de la palabra cuando se reconoce como la
        categoría actual. El proceso es idéntico al que se realiza en
        la función anterior, salvo que la información que se actualiza es
        la de la lista almacenada en el campo gender.
 -  set_num_token. Esta función es como la precedente,
        excepto que el argumento que recibe es un entero que indica el
        número, por lo cual la información que se actualiza es la
        correspondiente a la de la lista almacenada en el campo 
        number.
 -  set_per_token. Igual que la anterior pero referida a la
        persona verbal (campo person).
 -  set_vtn_token. Actualiza el valor del tiempo verbal,
        modificando el primer elemento de la lista del campo 
        verbal_tense.
 
Una función adicional que ha sido preciso definir es concat.
Su misión es la de realizar la concatenación de dos cadenas de
caracteres que se pasan como argumentos.  A diferencia de la función
estándar strcat, la cual concatena físicamente la segunda
cadena al final de la primera, esta función crea una nueva cadena de caracteres,
reservando el espacio de memoria necesario, en el que  copia secuencialmente
los caracteres de ambas cadenas. El valor retornado es un puntero al
primer carácter de esta nueva cadena de caracteres.
 
 
 
  
 Next: 6.3.4 Proceso de actualización 
Up: 6.3 Integración con el 
 Previous: 6.3.2 Estructuras de datos 
Miguel A. Alonso Pardo 
Thu Nov 20 16:47:01 CET 1997