Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

[C/C++] Analizador Sintactico

Participa en el tema [C/C++] Analizador Sintactico en el foro Programación.
Holas! voy derecho al grano jeje tenemos q llevar a cabo el analisis sintactico de ...

Buscar en este tema:
 
  •  
    gaboblanch escribió el 07/11/2007 a las 10:40 hs.
     
    ¿Mensaje inapropiado?
    #1 [C/C++] 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 adjuntos
    Tipo de archivo: zip Trabajo Practico N2 Analizador sintatico.zip (4.7 KB, 704 vistas)
    +
     
    0
    Me gusta
     
    | Más
  • megajandro escribió el 07/11/2007 a las 11:03 hs. ¿Mensaje inapropiado?

    #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.
    Me gusta este mensaje
  • gaboblanch escribió el 07/11/2007 a las 15:23 hs. ¿Mensaje inapropiado?

    #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.
    Me gusta este mensaje
  • pangus escribió el 08/11/2007 a las 13:41 hs. ¿Mensaje inapropiado?

    #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.
    Me gusta este mensaje
  • gaboblanch escribió el 09/11/2007 a las 12:00 hs. ¿Mensaje inapropiado?

    #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.
    Me gusta este mensaje
  • ada_15 escribió el 28/11/2007 a las 03:22 hs. ¿Mensaje inapropiado?

    #6 Re: Analizador Sintactico

    Originalmente publicado 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
    Me gusta este mensaje
  • AGUSTIN_RAMONE escribió el 28/11/2007 a las 10:06 hs. ¿Mensaje inapropiado?

    #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
    Me gusta este mensaje
  • ada_15 escribió el 02/12/2007 a las 03:48 hs. ¿Mensaje inapropiado?

    #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??
    Me gusta este mensaje
  • #9 Re: Analizador Sintactico

    Kaya kabaya
    Me gusta este mensaje
  • #10 Re: Analizador Sintactico

    gracias por el aporte muy bueno
    Me gusta este mensaje
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 9 RESPUESTAS
  • 12846 VISTAS
  • 7 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB