AnAlIzAdOr LéXiCo eN C
Creo k es mas fácil poner el código k hacer k nos mandemos mensajes no creen?? aki les dejo el código de mi analizador Lexico
mi e-mail es [email protected]
#include<conio.h>
#include<stdio.h>
#define BUFLEN 200
void vaciar();
FILE *fp;
char filename[10];
char simbolos[BUFLEN];
char *pal_res[BUFLEN];
char*bus[10],*pun[10];
char cad[100];
int bandera=0;
char c;
int p1[7],y1;
int p2[30];
int f,t;
char x;
int p;
y[20];
int s,r,m;
main()
{ /*
clrscr ();
printf("n ESCRIBE EL NOMBRE DEL ARCHIVO:");
scanf("%s",&filename);
if((fp=fopen("simbolos.txt","r"))==NULL)
{
printf("n ERROR ARCHIVO NO CREADO:");
getch();
}
else
{
s=0;
p1[0]=0;
p=1;
while((simbolos[s]=fgetc(fp))!=EOF)
{
if(simbolos[s]=='n')
{
p1[p]=s+1;
p++;
}
s++;
}
simbolos[s]='n';
fclose(fp);
if((fp=fopen("pal_res.txt","r"))==NULL)
{
printf("n ERROR ARCHIVO NO CREADO:");
getch();
}
else
{
s=0;
p2[0]=0;
p=1;
while((pal_res[s]=fgetc(fp))!=EOF)
{
if(pal_res[s]=='%')
{
p2[p]=s+1;
p++;
}
s++;
}
// pal_res[s]=='%';
fclose(fp); */
vaciar();
if ((fp=fopen(filename, "r"))!=NULL)
{
while((cad[s]=fgetc(fp))!=EOF)
{
s++;
while(cad[s-1]==' ' ) //Se guarda en la cadena la primera palabra del archivo
{
s=0;
y1=0;
while(cad[s]!=' '&&bandera==0)
{
for (r=0;r<7;r++ )
{
if ( cad[s]==simbolos[p1[r]])
{
bandera=1;
f++;
while(simbolos[p1[r]+f]!='n')
{
printf("n%s ",simbolos[p1[r]+f]);
f++;
}
*bus[y1]=cad[s];
s++;
}
r=0;
s++;
}
}
//fin del for compara la primera posicion para saber si es simbolo
+
/* for (r=0;r<=28;r++ )
{
f=1;
if ( cad[s]==*pal_res[p2[r]]&&cad[s]!='x0')
{
t=s++;
while(cad[t]==*pal_res[p2[r]+f]||bandera==0)
{
t++;
bandera=1;
f++;
if (*pal_res[p2[r]+f+1]=='%')
{
bandera=1;
printf("n ES PALABRA RESERVADA");
r=29;
}
}
}
} */
bandera=0;
}
s=0;
}
}
else
{
printf("n ERROR ARCHIVO NO CREADO: ");
getch();
// }
getch();
// }
}
return 0;
}
void vaciar()
{
clrscr ();
printf("n ESCRIBE EL NOMBRE DEL ARCHIVO:");
scanf("%s",&filename);
if((fp=fopen("simbolos.txt","r"))==NULL)
{
printf("n ERROR ARCHIVO NO CREADO:");
getch();
}
else
{
s=0;
p1[0]=0;
p=1;
while((simbolos[s]=fgetc(fp))!=EOF)
{
if(simbolos[s]=='n')
{
p1[p]=s+1;
p++;
}
s++;
}
simbolos[s]='n';
fclose(fp);
if((fp=fopen("pal_res.txt","r"))==NULL)
{
printf("n ERROR ARCHIVO NO CREADO:");
getch();
}
else
{
s=0;
p2[0]=0;
p=1;
while((*pal_res[s]=fgetc(fp))!=EOF)
{
if(*pal_res[s]=='%')
{
p2[p]=s+1;
p++;
}
s++;
}
// pal_res[s]=='%';
}
}
fclose(fp);
}
/*De que sirve sirve cuidense y ojalá les sirva*/
mi e-mail es [email protected]
#include<conio.h>
#include<stdio.h>
#define BUFLEN 200
void vaciar();
FILE *fp;
char filename[10];
char simbolos[BUFLEN];
char *pal_res[BUFLEN];
char*bus[10],*pun[10];
char cad[100];
int bandera=0;
char c;
int p1[7],y1;
int p2[30];
int f,t;
char x;
int p;
y[20];
int s,r,m;
main()
{ /*
clrscr ();
printf("n ESCRIBE EL NOMBRE DEL ARCHIVO:");
scanf("%s",&filename);
if((fp=fopen("simbolos.txt","r"))==NULL)
{
printf("n ERROR ARCHIVO NO CREADO:");
getch();
}
else
{
s=0;
p1[0]=0;
p=1;
while((simbolos[s]=fgetc(fp))!=EOF)
{
if(simbolos[s]=='n')
{
p1[p]=s+1;
p++;
}
s++;
}
simbolos[s]='n';
fclose(fp);
if((fp=fopen("pal_res.txt","r"))==NULL)
{
printf("n ERROR ARCHIVO NO CREADO:");
getch();
}
else
{
s=0;
p2[0]=0;
p=1;
while((pal_res[s]=fgetc(fp))!=EOF)
{
if(pal_res[s]=='%')
{
p2[p]=s+1;
p++;
}
s++;
}
// pal_res[s]=='%';
fclose(fp); */
vaciar();
if ((fp=fopen(filename, "r"))!=NULL)
{
while((cad[s]=fgetc(fp))!=EOF)
{
s++;
while(cad[s-1]==' ' ) //Se guarda en la cadena la primera palabra del archivo
{
s=0;
y1=0;
while(cad[s]!=' '&&bandera==0)
{
for (r=0;r<7;r++ )
{
if ( cad[s]==simbolos[p1[r]])
{
bandera=1;
f++;
while(simbolos[p1[r]+f]!='n')
{
printf("n%s ",simbolos[p1[r]+f]);
f++;
}
*bus[y1]=cad[s];
s++;
}
r=0;
s++;
}
}
//fin del for compara la primera posicion para saber si es simbolo
+
/* for (r=0;r<=28;r++ )
{
f=1;
if ( cad[s]==*pal_res[p2[r]]&&cad[s]!='x0')
{
t=s++;
while(cad[t]==*pal_res[p2[r]+f]||bandera==0)
{
t++;
bandera=1;
f++;
if (*pal_res[p2[r]+f+1]=='%')
{
bandera=1;
printf("n ES PALABRA RESERVADA");
r=29;
}
}
}
} */
bandera=0;
}
s=0;
}
}
else
{
printf("n ERROR ARCHIVO NO CREADO: ");
getch();
// }
getch();
// }
}
return 0;
}
void vaciar()
{
clrscr ();
printf("n ESCRIBE EL NOMBRE DEL ARCHIVO:");
scanf("%s",&filename);
if((fp=fopen("simbolos.txt","r"))==NULL)
{
printf("n ERROR ARCHIVO NO CREADO:");
getch();
}
else
{
s=0;
p1[0]=0;
p=1;
while((simbolos[s]=fgetc(fp))!=EOF)
{
if(simbolos[s]=='n')
{
p1[p]=s+1;
p++;
}
s++;
}
simbolos[s]='n';
fclose(fp);
if((fp=fopen("pal_res.txt","r"))==NULL)
{
printf("n ERROR ARCHIVO NO CREADO:");
getch();
}
else
{
s=0;
p2[0]=0;
p=1;
while((*pal_res[s]=fgetc(fp))!=EOF)
{
if(*pal_res[s]=='%')
{
p2[p]=s+1;
p++;
}
s++;
}
// pal_res[s]=='%';
}
}
fclose(fp);
}
/*De que sirve sirve cuidense y ojalá les sirva*/
Para k a todos los k lo necesitan les sirva cada k puedan hagan k este mensaje este vigente y Actual
vale??
vale??
OYE, DESEO SABER QUE INFORMACION CONTIENE LA TABLA DE SIMBOLOS.TXT, TE ENVIE UN MAIL, PARA VER SI ME LO PUEDES ENVIAR, O ASESORARME, SUPONGO QUE ES EL CODIGO FUENTE A ANALIZAR, PERO INTENTE CON OTRO Y NO PUEDO.
TE AGRADECERIA MUCHO TU AYUDA Y ESPERO RECIBIR RESPUESTA.
GRACIAS POR PONER EL CODIGO EN EL FORO, ME PARECE MEJOR IDEA ESO DE PONERLO QUE ENVIARLO, ESPERO QUE PUEDAS PONER TAMBIEN EL DE SIMBOLOS.TXT
TE AGRADECERIA MUCHO TU AYUDA Y ESPERO RECIBIR RESPUESTA.
GRACIAS POR PONER EL CODIGO EN EL FORO, ME PARECE MEJOR IDEA ESO DE PONERLO QUE ENVIARLO, ESPERO QUE PUEDAS PONER TAMBIEN EL DE SIMBOLOS.TXT