Facebook
From Karkos, 6 Years ago, written in Plain Text.
Embed
Download Paste or View Raw
Hits: 274
  1. %{
  2. #include"string.h"
  3. #define Program 1
  4. #define Poczatek 2
  5. #define Koniec 3
  6. #define Tablica 4
  7. #define Jesli 5
  8. #define To 6
  9. #define Przeciwne 7
  10. #define Ilsej 8
  11. #define Dopoki 9
  12. #define Wykonuj 10
  13. #define Ikopod 11
  14. #define Czytaj 12
  15. #define Drukuj 13
  16. #define Calkowite 14
  17. #define Rzeczywiste 15
  18. #define Boolowskie 16
  19. #define Nie 17
  20. #define Lub 18
  21. #define I 19
  22. #define Prawda 20
  23. #define Falsz 21
  24. #define ID 22
  25. #define NUM_R 23
  26. #define NUM_C 24
  27. #define Przypisz 25
  28. #define MR 26
  29. #define WR 27
  30. #define R 28
  31. %}
  32. litera [a-zA-Z]
  33. cyfra [0-9]
  34. %%
  35. program return(Program);
  36. poczatek return(Poczatek);
  37. koniec return(Koniec);
  38. tablica return(Tablica);
  39. jesli return(Jesli);
  40. to return(To);
  41. przeciwne return(Przeciwne);
  42. ilsej return(Ilsej);
  43. dopoki return(Dopoki);
  44. wykonuj return(Wykonuj);
  45. ikopod return(Ikopod);
  46. czytaj return(Czytaj);
  47. drukuj return(Drukuj);
  48. calkowite return(Calkowite);
  49. rzeczywiste return(Rzeczywiste);
  50. boolowskie return(Boolowskie);
  51. nie return(Nie);
  52. lub return(Lub);
  53. i return(I);
  54. prawda return(Prawda);
  55. falsz return(Falsz);
  56. {litera}({litera}|{cyfra})*{printf("%s ",yytext); return(ID);}
  57. (0|[1-9]{cyfra}*)\.({cyfra}*[1-9]|0)([eE][-+]?(0|[1-9]{cyfra}*))?{printf("%s ",yytext); return(NUM_R);}
  58. (0|[1-9]{cyfra}*)([eE][-+]?(0|[1-9]{cyfra}*))?{printf("%s ",yytext); return(NUM_C);}
  59. ":=" return(Przypisz);
  60. "<=" return(MR);
  61. ">=" return(WR);
  62. "<>" return(R);
  63. [-+*/:=<>;()\[\].] printf("%c",yytext[0]);
  64. .{printf("Blad leksykalny %c\n",yytext[0]); yyterminate();}
  65. [ ]+ ;
  66. [\n\t];
  67. %%
  68. void main(){int tak;
  69. while(1){tok=yylex();
  70. printf("%d\n",tok);}}