#include <parsero.h>
Diagrama de colaboración para PARSERO:
Métodos públicos | |
PARSERO () | |
~PARSERO () | |
BOOLEAN | init (char *nombre_archivo) |
int | siguiente_segmento (LISTA< char * > **LIneas) |
Este metodo encapsula la funcionalidad de un preprocesador semantico PARSERO. | |
Métodos privados | |
BOOLEAN | preprocese_linea (char *linea) |
Recibe una linea y tiene en cuenta el estado actual del analisis sintactico para hacer lo siguiente: - Determinar si la linea es relevante: retorna TRUE si lo es, y FALSE sino (i.e. | |
char * | procese_linea (char *linea) |
Lleva la cuenta del nivel de anidamiento de bloques "{...}". | |
void | colapse_espacios (char *linea) |
BOOLEAN | leer_linea (void) |
Atributos privados | |
int | index_fd |
LISTA< FILE * > | fds |
int | nivel_comentario |
int | nivel_bloque |
BOOLEAN | primer_pasada |
char * | Remanente |
|
Definición en la línea 110 del archivo parsero.C. References index_fd, nivel_bloque, nivel_comentario, primer_pasada, y Remanente. |
|
Definición en la línea 119 del archivo parsero.C. References LISTA< FILE * >::elim(), fds, Remanente, y LISTA< FILE * >::tam(). |
Here is the call graph for this function:
|
Definición en la línea 183 del archivo parsero.C. Referenciado por preprocese_linea(). |
|
Definición en la línea 164 del archivo parsero.C. References LISTA< FILE * >::anx(), y fds. Referenciado por JED_INTERFACE::leer_gui(), y leer_materiales(). |
Here is the call graph for this function:
|
Definición en la línea 131 del archivo parsero.C. References LISTA< FILE * >::anx(), des_punte(), LISTA< FILE * >::elimElem(), fds, index_fd, LISTA< FILE * >::tam(), y THE_buffer. Referenciado por siguiente_segmento(). |
Here is the call graph for this function:
|
Recibe una linea y tiene en cuenta el estado actual del analisis sintactico para hacer lo siguiente: - Determinar si la linea es relevante: retorna TRUE si lo es, y FALSE sino (i.e. una linea de un comentario o una vacia es una linea irrelevante)
Definición en la línea 204 del archivo parsero.C. References BOOLEAN, colapse_espacios(), y nivel_comentario. Referenciado por siguiente_segmento(). |
Here is the call graph for this function:
|
Lleva la cuenta del nivel de anidamiento de bloques "{...}".
Definición en la línea 277 del archivo parsero.C. References inserte_espacios(), nivel_bloque, y primer_pasada. Referenciado por siguiente_segmento(). |
Here is the call graph for this function:
|
Este metodo encapsula la funcionalidad de un preprocesador semantico PARSERO. El PARSERO esta disennado para "comerse" archivos de texto ASCII que estan escritos de una manera "similar a C/C++", es decir, que tienen comentarios marcados con "/ * y * /" y "//", y que tienen un caracter especial demarcador de linea multiple "\". Las lineas en blanco se eliminan, al igual que todos los segmentos que esten dentro de algun comentario. Los demas tokens se dejan intactos y se retornan como una lista de cadenas de caracteres (i.e. lista de renglones) en la variable `LIneas`. Por otro lado, las lineas del archivo no se retornan todas de una sola vez, sino que se van enviando por "bloques". Un bloque termina con un caracter "}". El preprocesador sintactico tiene en cuenta bloques anidados y solo particiona el reporte de bloques para los bloques del nivel principal. Retorna: -1 si algo sale mal 0 si ya acabo 1 si vamos bien BUGS: Este parsero no ha sido derivado formalmente, y ni siquiera se ha tomado la molestia de definir una gramatica! Por lo tanto, este codigo es "bug-prone" (propenso a errores). Bueno, pues se recomienda definir una gramatica formalmente y re-escribir este parsero usando alguna herramienta tipo LEX, BISON o YACC... pero debe conservarse el comportamiento y el disenno de esta clase y de la clase TOKENIZADOR. Definición en la línea 319 del archivo parsero.C. References LISTA< T >::anx(), LISTA< T >::elim(), fds, leer_linea(), nivel_bloque, preprocese_linea(), primer_pasada, procese_linea(), Remanente, LISTA< T >::tam(), LISTA< FILE * >::tam(), y THE_buffer. Referenciado por JED_INTERFACE::leer_gui(), y leer_materiales(). |
Here is the call graph for this function:
|
Definición en la línea 34 del archivo parsero.h. Referenciado por init(), leer_linea(), siguiente_segmento(), y ~PARSERO(). |
|
Definición en la línea 33 del archivo parsero.h. Referenciado por leer_linea(), y PARSERO(). |
|
Definición en la línea 36 del archivo parsero.h. Referenciado por PARSERO(), procese_linea(), y siguiente_segmento(). |
|
Definición en la línea 35 del archivo parsero.h. Referenciado por PARSERO(), y preprocese_linea(). |
|
Definición en la línea 37 del archivo parsero.h. Referenciado por PARSERO(), procese_linea(), y siguiente_segmento(). |
|
Definición en la línea 38 del archivo parsero.h. Referenciado por PARSERO(), siguiente_segmento(), y ~PARSERO(). |