Advertisement
FaisalAhemdBijoy

flexfaisal

Sep 25th, 2019
210
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.06 KB | None | 0 0
  1. %{
  2.     #include<string.h>
  3.     int loopst=0;
  4.     int condition=0;
  5.     int headercount=0;
  6.     int loopcount=0;
  7.     int conditioncount=0;
  8.     int functioncount=0;
  9.     int arraycount=0;
  10.     int expressioncount=0;
  11.     int numbercount=0;
  12.     int commentcount=0;
  13. %}
  14. varriable [a-z|A-Z]+[a-z|A-Z|0-9]*
  15. Operator "="|"+"|"-"|"/"|"*"|"&"|"|"|"%"
  16. Releational_Operator ">"|"<"|"<="|">="|"&&"|"||"|"=="|"!="
  17. digit [0-9]
  18. keyword "begin"|"end"
  19. %%
  20. "#".* {printf("Comment found : %s\n",yytext);
  21.         commentcount++;
  22. }
  23. "import ".* {
  24.     printf("header found :: ");
  25.     int i;
  26.     headercount++;
  27.     for(i=7;i<strlen(yytext);i++){
  28.         printf("%c",yytext[i]);
  29.     }
  30.     printf("\n");
  31. }
  32.  
  33. {varriable}{Operator}{digit}* {
  34.     printf("value assign\n");
  35.     expressioncount++;
  36. }
  37. {varriable}{Operator}{varriable}{Operator}{digit}*  {
  38.     printf("Mathematical expression\n");
  39.     expressioncount++;
  40. }
  41.  
  42. {keyword}.*  {
  43.     printf("keyword Found : %s",yytext);
  44. }
  45.  
  46. "array ".*   {
  47.    
  48.     printf("array assign : %s\n",yytext);
  49.     arraycount++;
  50.  
  51. }
  52.  
  53. "function ".* {
  54.     printf("function called\n");
  55.     int i;
  56.     functioncount++;
  57.     for(i=9;i<strlen(yytext);i++){
  58.         printf("%c",yytext[i]);
  59.     }
  60.     printf("\n");
  61. }
  62. "number "({varriable},)*{varriable} {
  63.     printf("varriable declared\n");
  64.     int i;
  65.     numbercount++;
  66.     for(i=7;i<strlen(yytext);i++){
  67.         if(yytext[i]==','){
  68.             printf("\n");
  69.         }
  70.         else{
  71.             printf("%c",yytext[i]);
  72.         }
  73.     }
  74. }
  75. "loop :"{varriable}{Releational_Operator}({digit}*|{varriable}*) {
  76.     printf("loop found\n");
  77.     loopst++;
  78.     loopcount++;
  79.  
  80. }
  81. "pool" {
  82.     loopst--;
  83.     if(loopst<1){
  84.         printf("Loop ended\n");
  85.     }
  86. }
  87. "conend" {
  88.     condition--;
  89.  
  90.    
  91.     printf("condition ended\n");
  92. }
  93. "condition "{varriable}[" "]*{Releational_Operator}[" "]*({digit}*|{varriable}*) {
  94.     printf("if condition\n");
  95.     condition++;
  96.     conditioncount++;
  97. }
  98.  
  99. "semicondition "{varriable}[" "]*{Releational_Operator}[" "]*({digit}*|{varriable}*) {
  100.     printf("elseif condition\n");
  101.     condition++;
  102.     conditioncount++;
  103. }
  104.  
  105. "nocondition" {
  106.     printf("else condition\n");
  107.     condition++;
  108.     conditioncount++;
  109. }
  110. .* {
  111.     if(loopst==0 && condition==0){
  112.         printf("%s",yytext);
  113.     }
  114.     if(loopst){
  115.         printf("Inside Loop");
  116.     }
  117.    
  118.     if(condition){
  119.         printf("Inside condition");
  120.     }
  121. }
  122. %%
  123.  
  124. int yywrap()
  125. {
  126.     return 1;
  127. }
  128.  
  129. int main(){
  130.     freopen("input.txt","r",stdin);
  131.     freopen("output.txt","w",stdout);
  132.     yylex();
  133.     printf("Program ended\n");
  134.     printf("----------------------------\n");
  135.     printf("Number of header file : %d\n",headercount);
  136.     printf("Number of Loop  : %d\n",loopcount);
  137.     printf("Number of condition  : %d\n",conditioncount);
  138.     printf("Number of function  : %d\n",functioncount);
  139.     printf("Number of array  : %d\n",arraycount);
  140.     printf("Number of expression  : %d\n",expressioncount);
  141.     printf("Number of declared number  : %d\n",numbercount);
  142.     printf("Number of Comment  : %d\n",commentcount);
  143.     return 0;
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement