Analizador Sintactico

      • 780
      • mensajes
      • miembro desde
      • 27/05/05
    #1 Analizador Sintactico

    Holas! voy derecho al grano jeje tenemos q llevar a cabo el analisis sintactico de una expresion tal como 9*9+(55+6*8) y me diga como esta compuesta y en caso de tener errores decirme cuales son. El tema es q funciona perfecto pero con esa operacion q escribi anteriormente me da un error de memoria. Aca se subo le programa a ver si a uds les funciona o si pueden encontrar el error. Gracias y saludos.

    Archivos adjuntados Archivos adjuntados
  1. ¿Este tema te pareció interesante? Compártelo!

    ¿No es lo que buscabas? Intenta buscar un tema similar

    19 comentarios / 60592 Visitas

      • 140
      • mensajes
      • miembro desde
      • 08/10/07
    07/11/2007
    #2 Re: Analizador Sintactico

    Todo muy lindo gabo!!! pero donde esta el automata???
    me parece que la idea es que utilices quizas por ahi un automata, una maquina que te permita
    analizar la expresion. Si llegas a un estado final esta ok la expresion. Sino que te diga donde se quedo, seria facil.

      • 780
      • mensajes
      • miembro desde
      • 27/05/05
    07/11/2007
    #3 Re: Analizador Sintactico

    La consigna no decia de marcar el error si no q dijera q estaba erronea, pero el unico problema es cuando llevamos a cabo esa expresion q da un error de memoria q no se puede read je.

      • 1,673
      • mensajes
      • miembro desde
      • 05/10/07
    08/11/2007
    #4 Re: Analizador Sintactico

    Mirá, dos cosas:

    1. es “sintáctico”

    2. Esto:

    Código:
            flotantes=malloc(sizeof(float)*longitud);
            ...
            for(i=0;i<=longitud;i++)
            flotantes[i]='----';
    está muy mal. Primero que te estás pasando por uno, y segundo que eso de setear los bits del float de esa manera es cualquiera. No sé cómo tu compilador te lo permite.

    Tratá de arreglar tu código para que no tire warnings. Te va a resultar más fácil encontrar los errores.
      • 780
      • mensajes
      • miembro desde
      • 27/05/05
    09/11/2007
    #5 Re: Analizador Sintactico

    Los warning son xq utilizamos ?? q dice q deshabilita algo q no se , pero mi problema era q segun la maquina una operacion funcionaba o no?? o sea daba error de memoria pero lo solucionamos.
    No entiendo a q te referis con q es cualquiera como queres resevar un espacio de memoria?? para setear esta memset pero malloc es para determinar un espacion de memoria para esa variable, por lo menos eso tengo entendido yo.
    Igual ya lo solucionamos ja, xq lo empezo un amigo q es medio bastante desordenado para programar y nos pusimos entre los 2 y lo fuimos acomodando un poco. Saludos y grax.

      • 3
      • mensajes
      • miembro desde
      • 28/11/07
    28/11/2007
    #6 Re: Analizador Sintactico
    Cita Escrito por gaboblanch Ver mensaje
    Holas! voy derecho al grano jeje tenemos q llevar a cabo el analisis sintactico de una expresion tal como 9*9+(55+6*8) y me diga como esta compuesta y en caso de tener errores decirme cuales son. El tema es q funciona perfecto pero con esa operacion q escribi anteriormente me da un error de memoria. Aca se subo le programa a ver si a uds les funciona o si pueden encontrar el error. Gracias y saludos.
    saludos
      • 2,582
      • mensajes
      • miembro desde
      • 16/03/04
    28/11/2007
    #7 Re: Analizador Sintactico

    Primero que nada tenes que armarte un analizador lexico, que toma el string ingresado y forma una cadena de tokens. Los tokens son los simbolos que ve el analizador sintactico. Por ejemplo
    "3 + (5 * 8)" seria la siguiente secuencia de tokens:
    "DIGITO, OP_SUMA, PAR_ABRE, DIGITO, OP_MUL, DIGITO, PAR_CIERRA"

    Despues tenes que definir la gramatica que va a reconocer expresiones:
    E<- E + T | E - T
    T<- T * F | T div F | F
    F <- (E) | Num
    Num<- 0|1|2|3|4|5|6|7|8|9

    Luego, armas un atomata, como bien dijeron por ahi... que no es mas ni menos que el algoritmo que usa la gramatia. Cada Letra de la gramatica (del lado izuqierdo al "<-") es un procedimiento. Por lo tanto vas a tener un procedimento expresion "E", otro procedimiento Termino "T" , otro factor "F". y otro Numero.
    Podes consultar los fuentes del compilador que hice en java para pascal. Buscalo en el foro. Ahi tenes un ejemplo de un Analizador Lexico, Sintactico y Semantico.
    Saludos

      • 3
      • mensajes
      • miembro desde
      • 28/11/07
    02/12/2007
    #8 Re: Analizador Sintactico

    yo tengo un programa que puede analizar un programa pero exteriormente

    o sea puede leer un documento de texto i genera otro documento de texto

    indicando cada uno de las palabaras que se utilizan en el programa

    por ejemplo

    void- palabra reservada

    mi pregunta seria como hacer para que yo pueda introducir mi codigo

    a travez del teclado

    y posteriormete analizarlo??

    a fcanu7 le gusta esto.
      • 1
      • mensajes
      • miembro desde
      • 25/06/09
    25/06/2009
    #9 Re: Analizador Sintactico

    Kaya kabaya

      • 2
      • mensajes
      • miembro desde
      • 09/10/09
    09/10/2009
    #10 Re: Analizador Sintactico

    gracias por el aporte muy bueno

12 Último
IR ARRIBA