#include<stdio.h>
#include<conio.h>
void main()
{
char str[25],ch,words[25][25];
int i,k,j,w=0,s=0,cntl=0,cntr=0,p=0,parR=0,f=0,parL=0;
FILE *fp;
clrscr();
fp=fopen("tnest.c","r");
printf("\n File: tnest.c\n\n");
if(fp!=NULL)
{
do
{
j=0;
ch='d';
strcpy(str,"");
while(ch!=' ')
{
ch=getc(fp);
putchar(ch);
if(ch==EOF) break;
if(ch=='{')
cntl++;
else if(ch=='}')
cntr++;
str[j]=ch;
if(ch!=' '&&ch!='\n'&&ch!=';'&&ch!='('&&ch!=')')
j++;
if(ch==' '||ch=='\n'||ch==';'||ch=='('||ch==')') break;
}
str[j]='\0';
strcpy(words[w++],str);
if(ch=='(')
strcpy(words[w++],"(");
if(ch==')')
strcpy(words[w++],")");
if(ch==';')
strcpy(words[w++],";");
if(ch=='\n')
strcpy(words[w++],"newline");
j=0;
}
while(ch!=EOF);
}
for(i=0;i<w;i++)
{//for
if(!strcmp(words[i],"for"))
{//1
s=0;p=0;parL=0;
if(!strcmp(words[++i],"("))
{//2
f++; parR=0;parL++;
for(j=i;j<w;j++)
{//3
if(!strcmp(words[j],";"))
s++;
if(!strcmp(words[j],")"))
{
parR++;
//p=1;
break;
}
if(!strcmp(words[j],"newline"))
{
break;
}
}//3
if(!strcmp(words[j],")"))
{
if((!strcmp(words[++j],";"))||(!strcmp(words[++j],"newline")))
p=1;
}
}//2
}//1
if(p!=1||parR!=1||s!=2||parL!=1) break;
}
if((parL!=1)||(parR!=1))
{
printf("\n\n* Error in syntax of parantheses ");
printf("of for loop no:%d ",f);
getch();
exit(0);
}
else if(cntl!=cntr)
{
printf("\n\n* Error in syntax of curly braces ");
getch();
exit(0);
}
else if(s!=2)
{
printf("\n\n* Error in syntax of semicolon ");
printf("of for loop no:%d ",f);
getch();
exit(0);
}
else if(p==1)
{
printf("\n\n* Syntax of for is correct");
getch();
exit(0);
}
fclose(fp);
getch();
}
0 Comments