[Loro-dev] Re: Rango (fwd)
Status: Beta
Brought to you by:
carueda
From: Carlos R. <ca...@cs...> - 2002-06-04 18:02:12
|
Una de las principales razones es canalizar la dependencia sobre JavaCC a traves de interfaces/clases propias para posibilitar tambien la utilizacion de otras herramientas sintacticas (antlr, sablecc, etc.) sin que se afecte el resto del sistema Loro. Notaras por ejemplo que todas las clases en el paquete loro.parsers.javacc NO aparecen en ninguna otra parte del sistema SALVO loro.parsers.javacc.DerivadorJavaCC que es la unica clase referenciada en loro.derivacion.ManejadorDerivacion, ya que este manejador es quien decide CUAL derivador particular utilizar y lo pone a disposicion a traves de la interface IDerivador. En un futuro podrian aparecer otros derivadores, digamos los paquetes: loro.parsers.sablecc.*; loro.parsers.antlr.*; aunque esto no esta entre las prioridades. Salvo por una leve dependencia en la implementacion de Rango.obtPos() (que se corregira en una proxima version) el esquema descrito arriba esta logrado completamente y se constituye uno de las principales caracteristicas de modularidad de Loro. Pero esta clase tiene justificacion por si misma: representa el segmento (rango) de codigo fuente asociado a cada nodo del arbol sintactico. No solo sirve para ubicar un error de compilacion o ejecucion, sino que tambien permitira resaltar el codigo correspondiente en un modo de ejecucion paso-a-paso para fines de depuracion y ayudar a establecer "break points". En todo caso tu observacion nos recuerda que aun hay mucho por actualizar en la documentacion del codigo. Gracias! On Mon, 3 Jun 2002, Marcos Diaz Molk wrote: > Buenas, me gustaria entender un poco para que sirve la clase > Rango. Si se utilizaa para control de errores, no seria mejor > utilizar las propias clases que te da JavaCC |