Advertisement
Nusrat_Ullah

smwahtfull

Nov 23rd, 2020 (edited)
630
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 8.37 KB | None | 0 0
  1. #include<stdio.h>
  2. char s[110],ifs[]= {'i','f'},elses[]= {'e','l','s','e',' '};
  3. char fors[]={'f','o','r'},scanfs[]={'s','c','a','n','f','(','"','%','d','"',',','&'};
  4. char printfs[]={'p','r','i','n','t','f','(','"','%','d','"',','};
  5. int valid(char a)
  6. {
  7.     if(a>='A'&&a<='Z'||a>='a'&&a<='z')
  8.         return 1;
  9.     return 0;
  10. }
  11. int isif(int l,int r)
  12. {
  13.     int i,j,f=1;
  14.     for(i=l,j=0; i<r; i++,j++) {
  15.         if(ifs[j]!=s[i]) {
  16.             f=0;
  17.         }
  18.     }
  19.     return f;
  20. }
  21. int iselse(int r)
  22. {
  23.     int i,f=1;
  24.     for(i=0; i<r; i++) {
  25.         if(elses[i]!=s[i]) {
  26.             f=0;
  27.         }
  28.     }
  29.     return f;
  30. }
  31. int isfor(int r)
  32. {
  33.     int i,f=1;
  34.     for(i=0; i<r; i++) {
  35.         if(fors[i]!=s[i]) {
  36.             f=0;
  37.         }
  38.     }
  39.     return f;
  40. }
  41. int isscanf(int r)
  42. {
  43.     int i,f=1;
  44.     for(i=0; i<r; i++) {
  45.         if(scanfs[i]!=s[i]) {
  46.             f=0;
  47.         }
  48.     }
  49.     return f;
  50. }
  51. int isprintf(int r)
  52. {
  53.     int i,f=1;
  54.     for(i=0; i<r; i++) {
  55.         if(printfs[i]!=s[i]) {
  56.             f=0;
  57.         }
  58.     }
  59.     return f;
  60. }
  61. int main()
  62. {
  63.     int i,j,f=1;
  64.     scanf("%[^\n]s",s);
  65.     if(isif(0,2)) {
  66.         if(s[2]=='(') {
  67.             if(valid(s[3])) {
  68.                 if(s[4]=='<'||s[4]=='>'||s[4]=='=') {
  69.                     if(!isdigit(s[5])&&s[5]=='=') {
  70.                         if(isdigit(s[6])) {
  71.                             i=6;
  72.                             while(isdigit(s[i])) {
  73.                                 i++;
  74.                             }
  75.                             if(s[i]==')'&&!s[i+1]) {
  76.                                 printf("if = identifier\n");
  77.                                 printf("() = parenthesis\n");
  78.                                 printf("%c%c = operator\n",s[4],s[5]);
  79.                                 printf("%c = variable\n",s[3]);
  80.                                 for(j=6; j<i; j++)printf("%c",s[j]);
  81.                                 printf(" = integer\n");
  82.                             }
  83.                             else f=0;
  84.                         }
  85.                         else f=0;
  86.                     }
  87.                     else if(isdigit(s[5])) {
  88.                         i=5;
  89.                         while(isdigit(s[i])) {
  90.                             i++;
  91.                         }
  92.                         if(s[i]==')'&&!s[i+1]) {
  93.                             printf("if = identifier\n");
  94.                             printf("() = parenthesis\n");
  95.                             printf("%c = operator\n",s[4]);
  96.                             printf("%c = variable\n",s[3]);
  97.                             for(j=5; j<i; j++)printf("%c",s[j]);
  98.                             printf(" = integer\n");
  99.                         }
  100.                     }
  101.                     else f=0;
  102.                 }
  103.                 else f=0;
  104.             }
  105.             else f=0;
  106.         }
  107.         else f=0;
  108.     }
  109.     else if(iselse(5)&&isif(5,7)) {
  110.         if(s[7]=='(') {
  111.             if(valid(s[8])) {
  112.                 if(s[9]=='<'||s[9]=='>'||s[9]=='=') {
  113.                     if(!isdigit(s[10])&&s[10]=='=') {
  114.                         if(isdigit(s[11])) {
  115.                             i=11;
  116.                             while(isdigit(s[i])) {
  117.                                 i++;
  118.                             }
  119.                             if(s[i]==')'&&s[i+1]=='\0') {
  120.                                 printf("else if = identifier\n");
  121.                                 printf("() = parenthesis\n");
  122.                                 printf("%c%c = operator\n",s[9],s[10]);
  123.                                 printf("%c = variable\n",s[8]);
  124.                                 for(j=11; j<i; j++)printf("%c",s[j]);
  125.                                 printf(" = integer\n");
  126.                             }
  127.                             else f=0;
  128.                         }
  129.                         else f=0;
  130.                     }
  131.                     else if(isdigit(s[10])) {
  132.                         i=10;
  133.                         while(isdigit(s[i])) {
  134.                             i++;
  135.                         }
  136.                         if(s[i]==')'&&s[i+1]=='\0') {
  137.                             printf("else if = identifier\n");
  138.                             printf("() = parenthesis\n");
  139.                             printf("%c = operator\n",s[9]);
  140.                             printf("%c = variable\n",s[8]);
  141.                             for(j=10; j<i; j++)printf("%c",s[j]);
  142.                             printf(" = integer\n");
  143.                         }
  144.                     }
  145.                     else f=0;
  146.                 }
  147.                 else f=0;
  148.             }
  149.             else f=0;
  150.         }
  151.         else f=0;
  152.     }
  153.     else if(isfor(3)) {
  154.         if(s[3]=='(') {
  155.             if(valid(s[4])&&s[5]=='='&&isdigit(s[6])&&s[7]==';') {
  156.                 if(valid(s[8])) {
  157.                     if(s[9]=='<'||s[9]=='>'||s[9]=='=') {
  158.                         if(!isdigit(s[10])&&s[10]=='=') {
  159.                             if(isdigit(s[11])) {
  160.                                 i=11;
  161.                                 while(isdigit(s[i])) {
  162.                                     i++;
  163.                                 }
  164.                                 if(s[i]==';'&&isalpha(s[++i])&&s[++i]=='+'&&s[++i]=='+'&&s[++i]==')') {
  165.                                     printf("for = identifier\n");
  166.                                     printf("() = parenthesis\n");
  167.                                     printf("%c = operator\n",s[5]);
  168.                                     printf("%c = operator\n",s[9]);
  169.                                     printf("%c = variable\n",s[4]);
  170.                                     for(j=11; j<i-4; j++)printf("%c",s[j]);
  171.                                     printf(" = integer\n");
  172.                                     printf("%c = integer\n",s[6]);
  173.                                     printf("; = end of statement\n");
  174.                                 }
  175.                                 else f=0;
  176.                             }
  177.                             else f=0;
  178.                         }
  179.                     }
  180.                     else f=0;
  181.                 }
  182.                 else f=0;
  183.             }
  184.             else f=0;
  185.         }
  186.         else f=0;
  187.     }
  188.     else if(isscanf(12)&&valid(s[12])&&s[13]==')'&&s[14]==';') {
  189.                 printf("scanf = identifier\n");
  190.                 printf("() = parenthesis\n");
  191.                 printf("%c = quote\n",s[6]);
  192.                 printf("%c = variable\n",s[12]);
  193.                 printf(", = comma\n");
  194.                 printf("; = end of statement\n");
  195.     }
  196.     else if(isprintf(12)&&valid(s[12])&&s[13]==')'&&s[14]==';') {
  197.                 printf("printf = identifier\n");
  198.                 printf("() = parenthesis\n");
  199.                 printf("%c = quote\n",s[7]);
  200.                 printf("%c = variable\n",s[12]);
  201.                 printf(", = comma\n");
  202.                 printf("; = end of statement\n");
  203.     }
  204.     else if(valid(s[0])) {
  205.         if(s[1]=='=') {
  206.             if(valid(s[2])) {
  207.                 if(s[3]=='+'||s[3]=='-') {
  208.                     if(isdigit(s[4])) {
  209.                         i=4;
  210.                         while(isdigit(s[i])) {
  211.                             i++;
  212.                         }
  213.                         if(s[i]==';'&&!s[i+1]) {
  214.                             printf("%c = variable\n",s[0]);
  215.                             printf("= = operator\n",s[1]);
  216.                             printf("%c = operator\n",s[3]);
  217.                             printf("%c = variable\n",s[2]);
  218.                             for(j=4; j<i; j++)printf("%c",s[j]);
  219.                             printf(" = integer\n");
  220.                             printf("; = end\n");
  221.                         }
  222.                         else f=0;
  223.                     }
  224.                     else if(valid(s[4])) {
  225.                         if(s[5]==';'&&!s[6]) {
  226.                             printf("%c = variable\n",s[0]);
  227.                             printf("= = operator\n",s[1]);
  228.                             printf("%c = operator\n",s[3]);
  229.                             printf("%c = variable\n",s[2]);
  230.                             printf("%c = variable\n",s[4]);
  231.                             printf("; = end\n");
  232.                         }
  233.                         else f=0;
  234.                     }
  235.                     else f=0;
  236.                 }
  237.             }
  238.         }
  239.         else f=0;
  240.     }
  241.     if(f==0)printf("invalid\n");
  242.     return 0;
  243. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement