next up previous contents
Next: 6.2.2 Ficheros de entrada Up: 6.2 Utilización de ICE Previous: 6.2 Utilización de ICE

6.2.1 Ficheros de configuración

El primer paso para trabajar correctamente con ICE es establecer adecuadamente el contenido de los ficheros de configuración. Estos ficheros establecen ciertas características del comportamiento del analizador generado. No están relacionados con la configuración del generador ICE.

Existen dos ficheros involucrados en la configuración, que reciben los nombres de .lelisp y .ice.

El fichero .lelisp

Este fichero es realmente un fichero de configuración de LE-LISP, en el cual el usuario puede introducir cualquier expresión válida en este leguaje. Este fichero, que debe estar ubicado en el directorio home del usuario, es leido durante el arranque del sistema LE-LISP, por lo que se utiliza para incorporar al sistema definiciones de funciones que van a ser utilizadas posteriormente con asiduidad y para llamar a funciones de inicialización y carga de módulos.

En lo que respecta a ICE, la utilización de este fichero se restringe en la mayoría de los casos a la definición de una función denominada init-ice, cuya finalidad es:

Un ejemplo típico del contenido de este fichero, en lo referente a ICE, es el que se muestra a continuación

/* ICE initialization */
(defun init-ice ()
        (load "/home/galena/ice/interpret/classic/change.lh")
        (load "/home/galena/ice/interpret/classic/ice.lh")
        (load "/home/galena/ice/interpret/classic/transition.lh")
        (load "/home/galena/ice/interpret/classic/order.lh")
        (load "/home/galena/ice/interpret/classic/item.lh")
        (load "/home/galena/ice/interpret/classic/itemset.lh")

        (libload "libcir.ll")

        (load "/home/galena/ice/interpret/classic/gc.ll")
        (load "/home/galena/ice/interpret/classic/order.ll")
        (load "/home/galena/ice/interpret/classic/item.ll")
        (load "/home/galena/ice/interpret/classic/itemset.ll")
        (load "/home/galena/ice/interpret/classic/ice.ll")
        (load "/home/galena/ice/interpret/classic/tools.ll"))

El fichero .ice

El fichero propio de configuración de ICE recibe el nombre de .ice y debe estar ubicado en el directorio home del usuario. Se utiliza principalmente para indicar la localización de los ficheros correspondientes al código del analizador sintáctico (código LE-LISP generado por ICE) y del analizador léxico (código C, generalmente generado por Lex o Flexgif). Para ello se utiliza la función {ice}:user-language, que toma como argumentos dos cadenas de carácteres, el nombre del lenguaje (el mismo que se utiliza al llamar a la función {ice}:load) y el directorio en el cual se encuentran los ficheros mencionados anteriormente.

En la siguiente porción de código se muestra el contenido de un fichero .ice en el que se indica dónde buscar lenguajes como los del futuro sistema GALENAgif, Pascal, de expresiones aritméticas, etc.

({ice}:user-language "galena" "/home/galena/galena/tables/work/")
({ice}:user-language "pascal" "/home/cialonso/ice/tables/pascal/")
({ice}:user-language "pascal_nd" "/home/cialonso/ice/tables/pascal_nd/")
({ice}:user-language "nogo" "/home/cialonso/ice/tables/nogo/")
({ice}:user-language "arit" "/home/cialonso/ice/tables/arit/")
({ice}:user-language "arit_d" "/home/cialonso/ice/tables/arit_d/")
({ice}:user-language "lambda" "/home/cialonso/ice/tables/lambda/")
({ice}:user-language "brackets" "/home/cialonso/ice/tables/brackets/")
({ice}:user-language "metal" "/home/cialonso/ice/tables/metal/")

next up previous contents
Next: 6.2.2 Ficheros de entrada Up: 6.2 Utilización de ICE Previous: 6.2 Utilización de ICE

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