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