Advertisement
bappy7706

Lexical Analisis

Feb 18th, 2019
106
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. #include <string.h>
  2. char symTable[5][7] = { "int", "void", "float", "char", "string" };
  3. int main() {
  4.     int i, j, k = 0, flag = 0;
  5.     char string[7];
  6.     char str[] = "int main(){printf(\"Hello\");return 0;}";
  7.     char *ptr;
  8.     printf("Splitting string \"%s\" into tokens:\n", str);
  9.     ptr = strtok(str, " (){};""");
  10.     printf("\n\n");
  11.     while (ptr != NULL) {
  12.         printf ("%s\n", ptr);
  13.  
  14.         for (i = k; i < 5; i++) {
  15.             memset(&string[0], 0, sizeof(string));
  16.             for (j = 0; j < 7; j++) {
  17.                 string[j] = symTable[i][j];
  18.             }
  19.  
  20.             if (strcmp(ptr, string) == 0) {
  21.                 printf("Keyword\n\n");
  22.                 break;
  23.             } else
  24.             if (string[j] == 0 || string[j] == 1 || string[j] == 2 ||
  25.                 string[j] == 3 || string[j] == 4 || string[j] == 5 ||
  26.                 string[j] == 6 || string[j] == 7 || string[j] == 8 ||
  27.                 string[j] == 9) {
  28.                 printf("Constant\n\n");
  29.                 break;
  30.             } else {
  31.                 printf("Identifier\n\n");
  32.                 break;
  33.             }
  34.         }
  35.         ptr = strtok(NULL, " (){};""");
  36.         k++;
  37.     }
  38.     _getch();
  39.     return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement