Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<stdio.h>
- char s[110],ifs[]= {'i','f'},elses[]= {'e','l','s','e',' '};
- char fors[]={'f','o','r'},scanfs[]={'s','c','a','n','f','(','"','%','d','"',',','&'};
- char printfs[]={'p','r','i','n','t','f','(','"','%','d','"',','};
- int valid(char a)
- {
- if(a>='A'&&a<='Z'||a>='a'&&a<='z')
- return 1;
- return 0;
- }
- int isif(int l,int r)
- {
- int i,j,f=1;
- for(i=l,j=0; i<r; i++,j++) {
- if(ifs[j]!=s[i]) {
- f=0;
- }
- }
- return f;
- }
- int iselse(int r)
- {
- int i,f=1;
- for(i=0; i<r; i++) {
- if(elses[i]!=s[i]) {
- f=0;
- }
- }
- return f;
- }
- int isfor(int r)
- {
- int i,f=1;
- for(i=0; i<r; i++) {
- if(fors[i]!=s[i]) {
- f=0;
- }
- }
- return f;
- }
- int isscanf(int r)
- {
- int i,f=1;
- for(i=0; i<r; i++) {
- if(scanfs[i]!=s[i]) {
- f=0;
- }
- }
- return f;
- }
- int isprintf(int r)
- {
- int i,f=1;
- for(i=0; i<r; i++) {
- if(printfs[i]!=s[i]) {
- f=0;
- }
- }
- return f;
- }
- int main()
- {
- int i,j,f=1;
- scanf("%[^\n]s",s);
- if(isif(0,2)) {
- if(s[2]=='(') {
- if(valid(s[3])) {
- if(s[4]=='<'||s[4]=='>'||s[4]=='=') {
- if(!isdigit(s[5])&&s[5]=='=') {
- if(isdigit(s[6])) {
- i=6;
- while(isdigit(s[i])) {
- i++;
- }
- if(s[i]==')'&&!s[i+1]) {
- printf("if = identifier\n");
- printf("() = parenthesis\n");
- printf("%c%c = operator\n",s[4],s[5]);
- printf("%c = variable\n",s[3]);
- for(j=6; j<i; j++)printf("%c",s[j]);
- printf(" = integer\n");
- }
- else f=0;
- }
- else f=0;
- }
- else if(isdigit(s[5])) {
- i=5;
- while(isdigit(s[i])) {
- i++;
- }
- if(s[i]==')'&&!s[i+1]) {
- printf("if = identifier\n");
- printf("() = parenthesis\n");
- printf("%c = operator\n",s[4]);
- printf("%c = variable\n",s[3]);
- for(j=5; j<i; j++)printf("%c",s[j]);
- printf(" = integer\n");
- }
- }
- else f=0;
- }
- else f=0;
- }
- else f=0;
- }
- else f=0;
- }
- else if(iselse(5)&&isif(5,7)) {
- if(s[7]=='(') {
- if(valid(s[8])) {
- if(s[9]=='<'||s[9]=='>'||s[9]=='=') {
- if(!isdigit(s[10])&&s[10]=='=') {
- if(isdigit(s[11])) {
- i=11;
- while(isdigit(s[i])) {
- i++;
- }
- if(s[i]==')'&&s[i+1]=='\0') {
- printf("else if = identifier\n");
- printf("() = parenthesis\n");
- printf("%c%c = operator\n",s[9],s[10]);
- printf("%c = variable\n",s[8]);
- for(j=11; j<i; j++)printf("%c",s[j]);
- printf(" = integer\n");
- }
- else f=0;
- }
- else f=0;
- }
- else if(isdigit(s[10])) {
- i=10;
- while(isdigit(s[i])) {
- i++;
- }
- if(s[i]==')'&&s[i+1]=='\0') {
- printf("else if = identifier\n");
- printf("() = parenthesis\n");
- printf("%c = operator\n",s[9]);
- printf("%c = variable\n",s[8]);
- for(j=10; j<i; j++)printf("%c",s[j]);
- printf(" = integer\n");
- }
- }
- else f=0;
- }
- else f=0;
- }
- else f=0;
- }
- else f=0;
- }
- else if(isfor(3)) {
- if(s[3]=='(') {
- if(valid(s[4])&&s[5]=='='&&isdigit(s[6])&&s[7]==';') {
- if(valid(s[8])) {
- if(s[9]=='<'||s[9]=='>'||s[9]=='=') {
- if(!isdigit(s[10])&&s[10]=='=') {
- if(isdigit(s[11])) {
- i=11;
- while(isdigit(s[i])) {
- i++;
- }
- if(s[i]==';'&&isalpha(s[++i])&&s[++i]=='+'&&s[++i]=='+'&&s[++i]==')') {
- printf("for = identifier\n");
- printf("() = parenthesis\n");
- printf("%c = operator\n",s[5]);
- printf("%c = operator\n",s[9]);
- printf("%c = variable\n",s[4]);
- for(j=11; j<i-4; j++)printf("%c",s[j]);
- printf(" = integer\n");
- printf("%c = integer\n",s[6]);
- printf("; = end of statement\n");
- }
- else f=0;
- }
- else f=0;
- }
- }
- else f=0;
- }
- else f=0;
- }
- else f=0;
- }
- else f=0;
- }
- else if(isscanf(12)&&valid(s[12])&&s[13]==')'&&s[14]==';') {
- printf("scanf = identifier\n");
- printf("() = parenthesis\n");
- printf("%c = quote\n",s[6]);
- printf("%c = variable\n",s[12]);
- printf(", = comma\n");
- printf("; = end of statement\n");
- }
- else if(isprintf(12)&&valid(s[12])&&s[13]==')'&&s[14]==';') {
- printf("printf = identifier\n");
- printf("() = parenthesis\n");
- printf("%c = quote\n",s[7]);
- printf("%c = variable\n",s[12]);
- printf(", = comma\n");
- printf("; = end of statement\n");
- }
- else if(valid(s[0])) {
- if(s[1]=='=') {
- if(valid(s[2])) {
- if(s[3]=='+'||s[3]=='-') {
- if(isdigit(s[4])) {
- i=4;
- while(isdigit(s[i])) {
- i++;
- }
- if(s[i]==';'&&!s[i+1]) {
- printf("%c = variable\n",s[0]);
- printf("= = operator\n",s[1]);
- printf("%c = operator\n",s[3]);
- printf("%c = variable\n",s[2]);
- for(j=4; j<i; j++)printf("%c",s[j]);
- printf(" = integer\n");
- printf("; = end\n");
- }
- else f=0;
- }
- else if(valid(s[4])) {
- if(s[5]==';'&&!s[6]) {
- printf("%c = variable\n",s[0]);
- printf("= = operator\n",s[1]);
- printf("%c = operator\n",s[3]);
- printf("%c = variable\n",s[2]);
- printf("%c = variable\n",s[4]);
- printf("; = end\n");
- }
- else f=0;
- }
- else f=0;
- }
- }
- }
- else f=0;
- }
- if(f==0)printf("invalid\n");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement