Code: Select all
//Homer simpson or american chajnik in russia speech reader
//ver 0.1preAlpha1
//25 dec 2003
//LXX-speech #XX
//E1-speech end
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
int find(char s,char *str2)
{
int ptr=0;
while(str2[ptr]!=0)
{
if(str2[ptr]==s) return ptr; // number return
ptr++;
}
return -1; // not found
}
/*int findstr(char str[],char str2[])
{
int x,x1,rez,i;
x=sizeof(str2);
x1=sizeof(str);
if(x>=x1)
{
for (i=0; i==x; i++)
{
rez=find(str[i],str2);
if(rez==-1)
{
i=x;
return -1;
}
return 1;
}
} else {
return -1;
}
}*/
int main (void)
{
FILE *fpspeech;
char str[81];
int est,dat,odat,i;
est=0;
if ((fpspeech=fopen("program.eng","r"))==NULL)
{
printf("\aERROR opening program.rus\n");
return(100);
}
while ((fgets(str,sizeof(str),fpspeech))!=NULL)
{
if
(str[0]=='I')
{
printf("IF");
if(find('M',str)!=-1)
{
dat=find('M',str);
if(isdigit(str[(dat+1)])&&isdigit(str[(dat+2)]))
{
printf(" DATA [%c%c]=1",str[dat+1],str[dat+2]);
}
}
if(find('S',str)!=-1)
{
dat=find('S',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" POCKET[1--3]=%c%c",str[dat+1],str[dat+2]);
}
}
if(find('B',str)!=-1)
{
dat=find('B',str);
if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
{
printf(" PLAY %c%c",str[dat+1],str[dat+2]);
}
}
if(find('P',str)!=-1)
{
odat=find('P',str);
if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
{
printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
dat=find('*',str);
i=odat+5;
printf(" ");
while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
{
printf("%c",str[i]);
i++;
}
dat=find('*',str);
if (dat!=-1)
{
if (str[dat+1]=='*')
{
printf(" WAIT=2)");
}
else
{
printf(" WAIT=1)");
}
}
else
{
printf(" WAIT=0)");
}
}
}
if (find('R',str)!=-1)
{
dat=find('R',str);
if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
{
printf(" PutSprite(Moveable=%c,Solid=%c,#%c%c)",str[dat+1],str[dat+2],str[dat+3],str[dat+4]);
}
}
if (find('+',str)!=-1)
{
dat=find('+',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" PutPocket(#%c%c)",str[dat+1],str[dat+2]);
}
}
if (find('-',str)!=-1)
{
dat=find('-',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" RemovePocket(#%c%c)",str[dat+1],str[dat+2]);
}
}
dat=find('G',str);
if ((find('G',str)!=-1)&&(isdigit(str[dat+1])||str[dat+1]=='$'||str[dat+1]=='%'||str[dat+1]==96||str[dat+1]=='!') && isdigit(str[dat+2]))
{
dat=find('G',str);
if((isdigit(str[dat+1])||str[dat+1]=='$'||str[dat+1]=='%'||str[dat+1]==96||str[dat+1]=='!')&&isdigit(str[dat+2]))
{
printf(" Goto label %c%c",str[dat+1],str[dat+2]);
}
}
if (find('E',str)!=-1)
{
dat=find('E',str);
if(str[dat+1]=='0')
{
printf(" Exit 0");
}
if(str[dat+1]=='1')
{
printf(" Exit 1");
}
}
printf("\n%s",str);
getchar();
}
if(str[0]=='E')
{
if(find('1',str)!=-1)
{
printf("Exit 1");
}
if(find('0',str)!=-1)
{
printf("Exit 0");
}
printf("\n%s",str);
getchar();
}
if(str[0]=='P')
{
odat=find('P',str);
if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
{
printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
dat=find('*',str);
i=odat+5;
printf(" ");
while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
{
printf("%c",str[i]);
i++;
}
dat=find('*',str);
if (dat!=-1)
{
if (str[dat+1]=='*')
{
printf(" WAIT=2)");
}
else
{
printf(" WAIT=1)");
}
}
else
{
printf(" WAIT=0)");
}
}
printf("\n");
//getchar();
}
if(str[0]=='L' && (isdigit(str[1])||str[1]=='$'||str[1]=='%'||str[1]==96||str[1]=='!') && isdigit(str[2]))
{
printf("Label %c%c",str[1],str[2]);
if /*(find('I',str)!=-1)*/
(str[4]=='I')
{
printf(" IF");
}
if(find('M',str)!=-1)
{
dat=find('M',str);
if(isdigit(str[(dat+1)])&&isdigit(str[(dat+2)]))
{
printf(" DATA [%c%c]=1",str[dat+1],str[dat+2]);
}
}
if(find('S',str)!=-1)
{
dat=find('S',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" POCKET[1--3]=%c%c",str[dat+1],str[dat+2]);
}
}
if(find('B',str)!=-1)
{
dat=find('B',str);
if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
{
printf(" PLAY %c%c",str[dat+1],str[dat+2]);
}
}
if(find('P',str)!=-1)
{
odat=find('P',str);
if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
{
printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
dat=find('*',str);
i=odat+5;
printf(" ");
while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
{
printf("%c",str[i]);
i++;
}
dat=find('*',str);
if (dat!=-1)
{
if (str[dat+1]=='*')
{
printf(" WAIT=2)");
}
else
{
printf(" WAIT=1)");
}
}
else
{
printf(" WAIT=0)");
}
}
}
if (find('R',str)!=-1)
{
dat=find('R',str);
if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
{
printf(" PutSprite(Moveable=%c,Solid=%c,#%c%c)",str[dat+1],str[dat+2],str[dat+3],str[dat+4]);
}
}
if (find('+',str)!=-1)
{
dat=find('+',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" PutPocket(#%c%c)",str[dat+1],str[dat+2]);
}
}
if (find('-',str)!=-1)
{
dat=find('-',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" RemovePocket(#%c%c)",str[dat+1],str[dat+2]);
}
}
if (find('G',str)!=-1)
{
dat=find('G',str);
if((isdigit(str[dat+1])||str[dat+1]=='$')&&isdigit(str[dat+2]))
{
printf(" Goto label %c%c",str[dat+1],str[dat+2]);
}
}
if (find('E',str)!=-1)
{
dat=find('E',str);
if(str[dat+1]=='0')
{
printf(" Exit 0");
}
if(str[dat+1]=='1')
{
printf(" Exit 1");
}
}
printf("\n");
//getchar();
}
}
getchar();
if (fclose(fpspeech)==EOF)
{
printf("\aERROR closing program.ru\n");
return(101);
}
return 0;
}
Code: Select all
//Homer simpson or american chajnik in russia speech reader
//ver 0.1preAlpha1
//25 dec 2003
//LXX-speech #XX
//E1-speech end
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include <conio.h> // для объявления getch()
// определить "getchar" (или исправь его везде на "getch")
#define getchar getch
//int find(char s,char *str2) // не верно
int find(s,str2) // надо так
char s, *str2;
{
int ptr=0;
while(str2[ptr]!=0)
{
if(str2[ptr]==s) return ptr; // number return
ptr++;
}
return -1; // not found
}
/*int findstr(char str[],char str2[])
{
int x,x1,rez,i;
x=sizeof(str2);
x1=sizeof(str);
if(x>=x1)
{
for (i=0; i==x; i++)
{
rez=find(str[i],str2);
if(rez==-1)
{
i=x;
return -1;
}
return 1;
}
} else {
return -1;
}
}*/
//int main (void) // не верно
int main () // верно
{
FILE *fpspeech;
char str[81];
int est,dat,odat,i;
est=0;
if ((fpspeech=fopen("program.eng","r"))==NULL)
{
printf("\aERROR opening program.rus\n");
return(100);
}
while ((fgets(str,sizeof(str),fpspeech))!=NULL)
{
if
(str[0]=='I')
{
printf("IF");
if(find('M',str)!=-1)
{
dat=find('M',str);
if(isdigit(str[(dat+1)])&&isdigit(str[(dat+2)]))
{
printf(" DATA [%c%c]=1",str[dat+1],str[dat+2]);
}
}
if(find('S',str)!=-1)
{
dat=find('S',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" POCKET[1--3]=%c%c",str[dat+1],str[dat+2]);
}
}
if(find('B',str)!=-1)
{
dat=find('B',str);
if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
{
printf(" PLAY %c%c",str[dat+1],str[dat+2]);
}
}
if(find('P',str)!=-1)
{
odat=find('P',str);
if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
{
printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
dat=find('*',str);
i=odat+5;
printf(" ");
while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
{
printf("%c",str[i]);
i++;
}
dat=find('*',str);
if (dat!=-1)
{
if (str[dat+1]=='*')
{
printf(" WAIT=2)");
}
else
{
printf(" WAIT=1)");
}
}
else
{
printf(" WAIT=0)");
}
}
}
if (find('R',str)!=-1)
{
dat=find('R',str);
if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
{
printf(" PutSprite(Moveable=%c,Solid=%c,#%c%c)",str[dat+1],str[dat+2],str[dat+3],str[dat+4]);
}
}
if (find('+',str)!=-1)
{
dat=find('+',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" PutPocket(#%c%c)",str[dat+1],str[dat+2]);
}
}
if (find('-',str)!=-1)
{
dat=find('-',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" RemovePocket(#%c%c)",str[dat+1],str[dat+2]);
}
}
dat=find('G',str);
if ((find('G',str)!=-1)&&(isdigit(str[dat+1])||str[dat+1]=='$'||str[dat+1]=='%'||str[dat+1]==96||str[dat+1]=='!') && isdigit(str[dat+2]))
{
dat=find('G',str);
if((isdigit(str[dat+1])||str[dat+1]=='$'||str[dat+1]=='%'||str[dat+1]==96||str[dat+1]=='!')&&isdigit(str[dat+2]))
{
printf(" Goto label %c%c",str[dat+1],str[dat+2]);
}
}
if (find('E',str)!=-1)
{
dat=find('E',str);
if(str[dat+1]=='0')
{
printf(" Exit 0");
}
if(str[dat+1]=='1')
{
printf(" Exit 1");
}
}
printf("\n%s",str);
getchar();
}
if(str[0]=='E')
{
if(find('1',str)!=-1)
{
printf("Exit 1");
}
if(find('0',str)!=-1)
{
printf("Exit 0");
}
printf("\n%s",str);
getchar();
}
if(str[0]=='P')
{
odat=find('P',str);
if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
{
printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
dat=find('*',str);
i=odat+5;
printf(" ");
while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
{
printf("%c",str[i]);
i++;
}
dat=find('*',str);
if (dat!=-1)
{
if (str[dat+1]=='*')
{
printf(" WAIT=2)");
}
else
{
printf(" WAIT=1)");
}
}
else
{
printf(" WAIT=0)");
}
}
printf("\n");
//getchar();
}
if(str[0]=='L' && (isdigit(str[1])||str[1]=='$'||str[1]=='%'||str[1]==96||str[1]=='!') && isdigit(str[2]))
{
printf("Label %c%c",str[1],str[2]);
if /*(find('I',str)!=-1)*/
(str[4]=='I')
{
printf(" IF");
}
if(find('M',str)!=-1)
{
dat=find('M',str);
if(isdigit(str[(dat+1)])&&isdigit(str[(dat+2)]))
{
printf(" DATA [%c%c]=1",str[dat+1],str[dat+2]);
}
}
if(find('S',str)!=-1)
{
dat=find('S',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" POCKET[1--3]=%c%c",str[dat+1],str[dat+2]);
}
}
if(find('B',str)!=-1)
{
dat=find('B',str);
if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
{
printf(" PLAY %c%c",str[dat+1],str[dat+2]);
}
}
if(find('P',str)!=-1)
{
odat=find('P',str);
if(isdigit(str[odat+1])&&isdigit(str[odat+2]))
{
printf(" Print(personage=%c%c Length=%c%c", str[odat+1],str[odat+2],str[odat+3],str[odat+4]);
dat=find('*',str);
i=odat+5;
printf(" ");
while(isalnum(str[i])||str[i]==' '||str[i]=='!'||str[i]=='?'||str[i]=='-'||str[i]=='.'||str[i]==','||str[i]==':'||str[i]==')'||str[i]==39)
{
printf("%c",str[i]);
i++;
}
dat=find('*',str);
if (dat!=-1)
{
if (str[dat+1]=='*')
{
printf(" WAIT=2)");
}
else
{
printf(" WAIT=1)");
}
}
else
{
printf(" WAIT=0)");
}
}
}
if (find('R',str)!=-1)
{
dat=find('R',str);
if(isdigit(str[dat+1])&&isdigit(str[dat+2]))
{
printf(" PutSprite(Moveable=%c,Solid=%c,#%c%c)",str[dat+1],str[dat+2],str[dat+3],str[dat+4]);
}
}
if (find('+',str)!=-1)
{
dat=find('+',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" PutPocket(#%c%c)",str[dat+1],str[dat+2]);
}
}
if (find('-',str)!=-1)
{
dat=find('-',str);
if(isxdigit(str[dat+1])&&isxdigit(str[dat+2]))
{
printf(" RemovePocket(#%c%c)",str[dat+1],str[dat+2]);
}
}
if (find('G',str)!=-1)
{
dat=find('G',str);
if((isdigit(str[dat+1])||str[dat+1]=='$')&&isdigit(str[dat+2]))
{
printf(" Goto label %c%c",str[dat+1],str[dat+2]);
}
}
if (find('E',str)!=-1)
{
dat=find('E',str);
if(str[dat+1]=='0')
{
printf(" Exit 0");
}
if(str[dat+1]=='1')
{
printf(" Exit 1");
}
}
printf("\n");
//getchar();
}
}
getchar();
if (fclose(fpspeech)==EOF)
{
printf("\aERROR closing program.ru\n");
return(101);
}
return 0;
}