SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado 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])
{ //¦&/$#?@
-
no entendi casi nad a............pero :
¿es algo asi como un compilador?
¿o que otro parecido puede tener?
-
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:
-
: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:
-
: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:
-
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])
{ //¦&/$#?@