next up previous contents
Next: 7 Guía para el Up: 6.4 Integración con ICEeditor Previous: 6.4.1 Análisis total

6.4.2 Análisis incremental

Para realizar un análisis incremental, es preciso indicarle a ICE los componentes léxicos que han sufrido modificaciones respecto al último análisis. La información que ICE precisa conocer es la siguiente:

Para poder proporcionar tal información, ICEeditor transforma todas las operaciones de edición de componentes léxicos en operaciones de modificación, las cuales se almacenan en el campo operations de la estructura {ICEeditor}, tal como se indica en el capítulo 2.

Cuando el usuario solicita la realización de un análisis incremental del texto, se activa el método parser asociado a la estructura {ICEeditor}. Este método realiza las siguientes acciones:

  1. Llama a la función {ice}:old para obtener el primer itemset resultado del análisi anterior.
  2. Para cada componente léxico que ha sido modificado:
    1. Recupera su itemset realizando sucesivas llamadas a la función {ice}:get-next.
    2. Busca el itemset siguiente a la secuencia contigua de componentes léxicos modificados.
    3. Crea un nuevo elemento en la lista que almacena los cambios sufridos por los componentes léxicos desde el último análisis. Para ello se realizan llamadas a las funciones {ice}:changesgif y {change}:newgif, como se muestra en el siguiente fragmento de códigogif:
      displaymath13075
      en donde "new_text" representa el nuevo texto del componente léxico después de ser modificado, itemset indica el itemset que ha sido modificado y next_itemset el siguiente itemset a la cadena contigua de comonentes léxicos modificados..
  3. Realiza una llamada a {ice}:incremental, la función que realiza el análisis incremental. Esta función ha sido modificada para pasar al analizador léxico la posición de inicio de cada modificación.

next up previous contents
Next: 7 Guía para el Up: 6.4 Integración con ICEeditor Previous: 6.4.1 Análisis total

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