next up previous contents
Next: 2.7.5 Sincronización del árbol Up: 2.7 Asociación multinivel Previous: 2.7.3 La estructura ICEeditor

2.7.4 Acceso al los TTR

El acceso a los componentes léxicos es una acción dirigida por el usuario, ya que cuando éste pulsa con el ratón sobre el texto y el editor de componentes léxicos se encuentra en uno de los estados de edición (campo edit-state con valor distinto de ()), es necesario acceder al TTR del componente léxico a cuyo texto pertenece el carácter señalado, puesto que se precisa de la información en él almacenado para guiar la correcta realización de la operación de edición del componente léxico.

Para que sea posible lograr este tipo de acceso hay que determinar la posición (fila y columna) del carácter señalado con el ratón. Para ello puede ser necesario capturar el evento asociado a la pulsación de uno de los botones del ratón.

Sin embargo, la posición del carácter en el cual se pulsó el ratón puede que no constituya una clave válida de acceso a un TTR. Esto se debe a que cada TTR se indexa en el árbol de enlace tomando como referencia las coordenadas del primer carácter de su cadena de texto asociada. Por consiguiente, hay que utilizar un enfoque de búsqueda tentativa a partir de la posición de un carácter. Para ello se puede definir un método asociado a ICEeditor llamado search-ttr-backward. Este método deberá acceder al nodo intermedio mediante el número de línea y tratar de buscar un carácter que sea el inicial de un componente léxico y cuya columna sea menor o igual que la pasada como argumento. Para ello bastará con recuperar los pares de asociación de la lista e ir comparándolos con la clave. Si la búsqueda no tiene éxito en esa línea, deberá repetir el proceso para la línea anterior.

Si el inicio del componente léxico se encuentra en la misma línea (que es el caso normal) el proceso de búsqueda resulta computacionalmente barato puesto que se trata de realizar accesos a una lista, estructuras bien manejadas por LISP.


next up previous contents
Next: 2.7.5 Sincronización del árbol Up: 2.7 Asociación multinivel Previous: 2.7.3 La estructura ICEeditor

Miguel A. Alonso Pardo
Thu Nov 20 16:47:01 CET 1997