next up previous contents
Next: 6 El análisis sintáctico Up: 5.4 La integración con Previous: 5.4.3 El control de

5.4.4 La recuperación de información de posición por ICEeditor

Para que ICEeditor pueda acceder a las funciones definidas en el módulo del analizador léxico, es preciso realizar una llamada a la función cload con el nombre del módulo compilado de dicho analizador como argumento.

También es preciso definir como externos los símbolos y las funciones a las que se va a acceder. Para ello se utiliza la función defextern:

(defextern _car_token_line () fix)
(defextern _car_token_pos  () fix)
(defextern _car_token_len  () fix)
(defextern _nextl_token_info_list () fix)

Tal como se indica en el capítulo 4, el primer parámetro de defextern indica el nombre de la función en C a la que se desea acceder, precedida de un guión bajo. El segundo indica el tipo de los parámetros que se le pasan a dicha función, en nuestro caso ninguno, y el tercero el tipo del valor devuelto, que en nuestro caso es siempre fixgif.

Con estos valores se puede acceder al árbol de enlace entre los componentes léxicos y el texto para actualizarlo convenientemente, mediante los métodos ya disponibles en ICEeditor.

Mediante nextl_info_token_list se borra el CAR de la lista de información de la posición de los componentes léxicos. Si el resultado devuelto es un 0, la lista resultante estará vacía y por lo tanto se habrá terminado con los componentes léxicos reconocidos en el proceso de análisis.



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