• Viernes 17 de Mayo de 2024, 05:55

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - yeyita

Páginas: [1]
1
Java / Linkedlist
« en: Domingo 8 de Mayo de 2005, 09:48 »
Hola, tengo un problemita y no lo puedo resolver, espero alguien me pueda ayudar.

Tengo una lista (LinkedList) donde almaceno una estructura, Mi problema es que necesito obtener un elemento de la lista, estoy utilizando el metodo get, pero me da un errorcillo, creo que es por que me regresa el objeto y lo elimina de la lista, necesito un metodo que me regrese el objeto sin eliminarlo, o que me digan como usar adecuadamente el metodo get!

 indicef = lista.indexOf(funcion); //aqui obtengo la posicion del objeto
 cad = (ConHash)lista.get(indicef); //intento recuperarlo pero me marca error


Muchas gracias

2
Dudas informáticas / Re: Compiladores
« en: Miércoles 13 de Abril de 2005, 06:09 »
Gracias a todos por su tiempo, todo salio bien y si alguien necesita ayuda y esta en mis manos, con mucho gusto!
Hasta luego

3
Dudas informáticas / Re: Compiladores
« en: Martes 29 de Marzo de 2005, 21:19 »
Hola Cirrus, gracias por tomarte tu tiempo en verdad te lo agradezco.
Como decia es un trabajo escolar y si tengo que hacerlo desde cero, todo lo que es sintaxis ya lo tengo solo me falta implementar la recuperacion, y no, no puedo utilizar las herramientas que me comentas tengo que hacerlo completito, ademas la gramatica es la que nos dio el profesor y debemos apegarnos completamente a ella, verdad que si es tedioso?? ni hablar el chiste es aprovechar al maximo y pues a hecharle los kilos.
Muchas gracias y hasta luego

4
Dudas informáticas / Re: Compiladores
« en: Martes 29 de Marzo de 2005, 07:31 »
Hola, de nuevo yo!
Bueno el compilador que estoy desarrollando es para el lenguaje E ( es un trabajo escolar). :smartass:
Este es un ejemplo de lo que debo hacer (se que es muy largo pero es la unica manera que que quede mas claro), tengo la regla EBNF, pido tokens del archivo y comparo para ver si la sintaxis es correcta o no.

EBNF:
Program::= "main" "program" "(" ")" "begin" "end"

Entrada:
1 | main
2 | begin
3 |
4 | end

Tomando en cuenta esta entrada, los errores serian (sin recuperacion de errores):
Error Semántico en la línea 2, se esperaba "program" y se encontró "begin".
Error Semántico en la línea 4, se esperaba "(" y se encontró "end".
Error Semántico en la línea 4, se esperaba ")" y se encontró EOF.
Error Semántico en la línea 4, se esperaba "begin" y se encontró EOF.
Error Semántico en la línea 4, se esperaba "end" y se encontró EOF.

Esto debido a que cada que se compara un lexema en la regla con un lexema leido, si hay o no correspondecia, se lee el siguiente lexema EN LA REGLA y se lee el siguiente lexema DEL ARCHIVO (provocando de esta manera, errores en cascada; en el ejemplo anterior, los dos últimos).

Como comentaba la recuperacion de errores es tres token adelante y uno hacia atras.

Con la recuperación a nivel de frase con tres tokens (o lexemas) hacia adelante (sin el que es hacia atras), marcaría lo siguiente:

Error Semántico en la línea 2, se esperaba "program" y se encontró "begin".
Error Semántico en la línea 2, se esperaba "(" y se encontró "begin".
Error Semántico en la línea 2, se esperaba ")" y se encontró "begin".
Error Semántico en la línea 4, se esperaba "begin" y se encontró "end".

Ahora ya no marca tantos errores en cascada (solo uno, el último), ya que comparamos el lexema DE LA REGLA (primer lexema) contra el lexema leído DEL ARCHIVO (en este caso "program" de la regla contra "begin" del archivo), si NO hay correspondencia, marcamos el error y avanzamos al siguiente lexema DE LA REGLA (segundo lexema), para comparar con EL MISMO lexema que ya teníamos leido del archivo (ahora sería "(" de la regla contra "begin" del archivo) y si no vuelve a haber correspondencia, marcamos el error y avanzamos nuevamente EN LA REGLA (tercer lexema) y lo comparamos contra EL MISMO lexema que ya teníamos leído (es decir el ")" de la regla contra el "begin" del archivo) y si no hubo correspondencia una vez más marcamos el error y avanzamos al siguiente lexema DE LA REGLA (que se convertirá en el primer lexema) pero TAMBIÉN avanzamos al siguiente lexema DEL ARCHIVO (lo que nos quedaría como "begin" para LA REGLA y "end" para el lexema leído del archivo) y al buscar correspondencia no la habrá y se marcará el error (que es un error falso, pero aquí no lo podemos corregir y así sería correcto), avanzamos el lexema EN LA REGLA (segundo lexema) y ya se encuentra correspondencia con el lexema que teníamos leído y ya se recupera (para este ejemplo es "end" en la regla y en el lexema leído del archivo).

Lo que hacemos con la busqueda hacia atras es lo siguiente: avanzamos en la regla un lexema y leemos otro lexema del archivo cuando no hubieron las tres correspondencias (en el ejemplo anterior, nos quedaría "begin" en la regla y "end" en el lexema leído del archivo) pero ANTES de marcar el error por no haber correspondencia, REGRESAMOS al lexema anterior de los que estámos leyendo DEL ARCHIVO (es por eso que algunos de ustedes van guardando estos lexemas en alguna estructura para su posible futura comparación) para compararlo con el lexema ACTUAL DE LA REGLA (en este caso, al buscar el lexema (o token) hacia atras DEL ARCHIVO nos queda "begin" contra el lexema que tenemos actualmente en la regla, en este caso también "begin" por lo que ya no marcaría ningún error al haber correspondencía, por lo que ya podemos avanzar de token (o lexema) en la regla Y TAMBIÉN en el archivo para seguir con las revisiones posteriores).

Los errores que se marcarían a nivel de frase incluyendo la busqueda hacia atras serían:

Error Semántico en la línea 2, se esperaba "program" y se encontró "begin".
Error Semántico en la línea 2, se esperaba "(" y se encontró "begin".
Error Semántico en la línea 2, se esperaba ")" y se encontró "begin".

Lo cual elimina ya los errores en cascada.

Bueno la verdad no se como comenzar a implementarlo, espero me puedan dar una idea, yo pensaba hacer una funcion pero si creo que seria muy complicado, y pues implementarlo para cada regla seria demasiado repetitivo, no quiero que me hagan el trabajo solo que necesito otras opiniones.

Muchas gracias por su tiempo!

Adjunto el archivo que contiene toda la gramatica del lenguaje

5
Dudas informáticas / Compiladores
« en: Sábado 26 de Marzo de 2005, 03:25 »
Auxilio, estoy desarrollando un compilador en java. Estoy con el analisis sintactico pero debo implementar la recuperacion de errores un token atras y tres hacia adelante. La verdad no tengo la menor idea de como empezar a implementarla alguien puede ayudarme? se los agradeceria mucho.

6
Java / Re: Cuadros De Dialogo
« en: Viernes 18 de Febrero de 2005, 21:20 »
:D
Hola, ya puse las extensiones en mi cuadro de dialogo, muchas gracias.
Por si alguien mas necesita hacerlo solo les aviso que las instrucciones que fuhrer me indico  van en el archivo donde se tiene implementado el JFileChooser  y se debe implementar una nueva clase utilizando el FileFilter.
Gracias Fuhrer por tu ayuda,
Hasta luego

7
Java / Cuadros De Dialogo
« en: Miércoles 16 de Febrero de 2005, 08:07 »
:hola:
Hola, estoy haciendo un editor de texto en java pero tengo un problema.
Cuando me abre el cuadro de dialogo de abrir (por ejemplo) deben aparecer las extensiones que seran usadas en mi editor,  como lo hace por ejemplo word.
Lo he hecho en otros lenguajes con enmascaramientos, pero en java no se como se hace,
Espero que alguien me pueda orientar un poquito, ya que soy nueva en java.
Muchas gracias por su ayuda
Mireya

8
C++ Builder / Re: Numeros De Linea En Memo
« en: Martes 12 de Octubre de 2004, 05:57 »
:rolleyes:
Muchas gracias, la verdad es que no he encontrado informacion sobre la funcion que me comentas (CaretPos).
No se todavia como se usa, pero los seguire investigando.
Gracias por tu atencion

9
C++ Builder / Numeros De Linea En Memo
« en: Miércoles 29 de Septiembre de 2004, 21:48 »
Hola: :hola:  
Estoy haciendo un editor para un compilador y necesito que me aparezca el numero de linea para verificar la posicion de los errores que produzca. Intente hacer una variable donde voy contando los cambios de linea que hay en el memo y desplegar con un ciclo en una etiqueta junto al memo, el problema es cuando el texto del memo es muy grande, los valores de la etiqueta no se modifican, intente hacerlo con otro memo pero tampoco puedo. :blink:
Alguien tiene idea de como hacerlo?
Muchas gracias por su ayuda.
Mireya

Páginas: [1]