SoloCodigo

Programación General => ASM (Ensamblador) => Mensaje iniciado por: daniel690 en Lunes 8 de Diciembre de 2003, 16:47

Título: Analizador Lexico Sintactico En Assembler
Publicado por: daniel690 en Lunes 8 de Diciembre de 2003, 16:47
hola que tela me estan pidiendo un analizador lexico y sintactico en del assembler que contenga instrucciones de c++, yo tengo uno de c++ pero no encuentro como meterle las instrucciones de assembler ester es el lexico de c++
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
#include<a:letydig.h>
#include<a:presen.h>
void sepcaracter (char cadena[100], char byte[20][50]);
char * transicion (char cadena[100]);

void main (void)
{
//   presenta();
   clrscr();
   textmode(C80);
   char renglon[100];
   char byte[20][50];
   int ren, contrenglon=1, i;
   FILE *entrada, *salida,*errores, *identifica;
   llamarchv();
   entrada = fopen ("a:\\ent.c", "r");
   salida = fopen ("a:\\salida.c", "w");
   errores = fopen ("a:\\errores.c", "w");
   identifica=fopen ("a:\\identifi.c","w");
   while (!feof(entrada))
   {
     fgets (renglon, 100, entrada);
     for (i=0; i<20; i++)
       byte[0] = '\0';
     sepcaracter(renglon, byte);
     ren = 0;
     while (strlen (byte[ren]) > 0)
      {
//   clrscr();
   gotoxy(5,4);cout<<"Linea analizada: ->";
   gotoxy(5,5);printf("Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));
   getch();
   gotoxy(5,5);cout<<"                                 ";
   if(!strcmp(transicion(byte[ren]),"error"))
     fprintf (errores, "Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));
   else
    {
      if(!strcmp(transicion(byte[ren]),"identificador"))
       {
         fprintf (salida, "Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));
         fprintf (identifica, "Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));
       }
      else
        fprintf (salida, "Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));

    }
   ren++;
     }
     contrenglon++;
     getch();

   }
   fclose (salida);
   fclose (entrada);
   fclose (errores);
   fclose (identifica);
}

char * transicion (char cadena[100])
{ //¦&/$#?@
Título: Re: Analizador Lexico Sintactico En Assembler
Publicado por: Super_G en Miércoles 10 de Diciembre de 2003, 03:20
no entendi casi nad a............pero :
¿es algo asi como un compilador?

¿o que otro parecido puede tener?
Título: Re: Analizador Lexico Sintactico En Assembler
Publicado por: daniel690 en Miércoles 10 de Diciembre de 2003, 14:34
Cita de: "Super_G"
no entendi casi nad a............pero :
¿es algo asi como un compilador?

¿o que otro parecido puede tener?
asi es es como un compilador tirnes algo por el estilo? :kicking:
Título: Re: Analizador Lexico Sintactico En Assembler
Publicado por: Advichield en Sábado 13 de Diciembre de 2003, 20:51
:angel: Daniel690: ¿tu podrias facilitarme el codigo fuente que se encuentra en tu mensaje completo?, pues estoy buscando necesitando ese codigo fuente con suma urgencia. Esta mañana copie ese codigo y al compilarlo en mi computador me dí cuenta que me hace falta una libreria. ¡Por fa, prestamelas!, quedaria eternamente agradecida,  :good:  por mi parte en el momento en que yo tuviese el codigo en lenguaje ensamblador terminado telo haria llegar.   :adios:
Título: Re: Analizador Lexico Sintactico En Assembler
Publicado por: dubhe_alpha en Sábado 4 de Diciembre de 2004, 18:48
:lightsabre: Oye que tal, esta muy bien tu analizador lexico, un favor me podrias enviar tus archivos que lees desde a:/ , estoy haciendo un analizador tambien, pero no tengo la minima idea de como meter la informacion al archivo y como compararla, mne urge mucho, podrias ayudarme, o enviarme tu codigo, es muy urgente, gracias :lightsabre:
Título: Re: Analizador Lexico Sintactico En Assembler
Publicado por: Los Socios JZL C++ Builde en Sábado 4 de Diciembre de 2004, 23:19
Cita de: daniel690
hola que tela me estan pidiendo un analizador lexico y sintactico en del assembler que contenga instrucciones de c++, yo tengo uno de c++ pero no encuentro como meterle las instrucciones de assembler ester es el lexico de c++
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include<string.h>
#include<a:letydig.h>
#include<a:presen.h>
void sepcaracter (char cadena[100], char byte[20][50]);
char * transicion (char cadena[100]);

void main (void)
{
//   presenta();
   clrscr();
   textmode(C80);
   char renglon[100];
   char byte[20][50];
   int ren, contrenglon=1, i;
   FILE *entrada, *salida,*errores, *identifica;
   llamarchv();
   entrada = fopen ("a:\\ent.c", "r");
   salida = fopen ("a:\\salida.c", "w");
   errores = fopen ("a:\\errores.c", "w");
   identifica=fopen ("a:\\identifi.c","w");
   while (!feof(entrada))
   {
     fgets (renglon, 100, entrada);
     for (i=0; i<20; i++)
       byte[0] = '\0';
     sepcaracter(renglon, byte);
     ren = 0;
     while (strlen (byte[ren]) > 0)
      {
//   clrscr();
   gotoxy(5,4);cout<<"Linea analizada: ->";
   gotoxy(5,5);printf("Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));
   getch();
   gotoxy(5,5);cout<<"                                 ";
   if(!strcmp(transicion(byte[ren]),"error"))
     fprintf (errores, "Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));
   else
    {
      if(!strcmp(transicion(byte[ren]),"identificador"))
       {
         fprintf (salida, "Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));
         fprintf (identifica, "Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));
       }
      else
        fprintf (salida, "Linea: %d %s %s\n", contrenglon, byte[ren], transicion(byte[ren]));

    }
   ren++;
     }
     contrenglon++;
     getch();

   }
   fclose (salida);
   fclose (entrada);
   fclose (errores);
   fclose (identifica);
}

char * transicion (char cadena[100])
{ //¦&/$#?@