home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume13 / backups / scanner.l < prev    next >
Encoding:
Lex Description  |  1988-01-31  |  1.7 KB  |  93 lines

  1. %{
  2. /* $Header: scanner.l,v 1.3 85/04/08 09:59:35 scooter Exp $ */
  3.  
  4. #include    "y.tab.h"
  5.  
  6. #undef  input
  7. #undef  output
  8. #undef  unput
  9. #define allprint(c) (putchar(c))
  10. #define sprint(str) (printf("%s",str))
  11. #define output(c) (putchar(c))
  12. #define input() (yytchar=yysptr>yysbuf?U(*--yysptr):getnextchar())
  13. #define unput(c) (*yysptr++=(c))
  14. #define yywrap() 1
  15.  
  16. %}
  17.  
  18. star    \*
  19. dash    \-
  20. filesys    \/[0-9a-zA-Z/]*
  21. slash    \/
  22. space    [ \t] 
  23. nu    [0-9][0-9]*
  24. arb    [a-zA-Z]*
  25. string    \"[^"]*\"
  26. comm    \#.*
  27. quote    \"
  28. comma    \,
  29. newline [\n]
  30. a    [aA]
  31. b    [bB]
  32. c    [cC]
  33. d    [dD]
  34. e    [eE]
  35. f    [fF]
  36. g    [gG]
  37. h    [hH]
  38. i    [iI]
  39. j    [jJ]
  40. k    [kK]
  41. l    [lL]
  42. m    [mM]
  43. n    [nN]
  44. o    [oO]
  45. p    [pP]
  46. q    [qQ]
  47. r    [rR]
  48. s    [sS]
  49. t    [tT]
  50. u    [uU]
  51. v    [vV]
  52. w    [wW]
  53. x    [xX]
  54. y    [yY]
  55. z    [zZ]
  56.  
  57. %%
  58.  
  59. {comm}{arb}        {return(COMMENT);}
  60. {string}        {strcpy(string,yytext);return(STRING);}
  61. {star}{space}        {yylval=0;return(STAR);}
  62.  
  63. {nu}            {sscanf(yytext,"%d",&yylval);
  64.              return(NUM);}
  65. {dash}            {return(DASH);}
  66.  
  67. {s}{u}{n}{arb}        {yylval=0;return(DAY);}
  68. {m}{o}{n}{arb}        {yylval=1;return(DAY);}
  69. {t}{u}{e}{arb}        {yylval=2;return(DAY);}
  70. {w}{e}{d}{arb}        {yylval=3;return(DAY);}
  71. {t}{h}{u}{arb}        {yylval=4;return(DAY);}
  72. {f}{r}{i}{arb}        {yylval=5;return(DAY);}
  73. {s}{a}{t}{arb}        {yylval=6;return(DAY);}
  74.  
  75. {j}{a}{n}{arb}        {yylval=0;return(MONTH);}
  76. {f}{e}{b}{arb}        {yylval=1;return(MONTH);}
  77. {m}{a}{r}{arb}        {yylval=2;return(MONTH);}
  78. {a}{p}{r}{arb}        {yylval=3;return(MONTH);}
  79. {m}{a}{y}{arb}        {yylval=4;return(MONTH);}
  80. {j}{u}{n}{arb}        {yylval=5;return(MONTH);}
  81. {j}{u}{l}{arb}        {yylval=6;return(MONTH);}
  82. {a}{u}{g}{arb}        {yylval=7;return(MONTH);}
  83. {s}{e}{p}{arb}        {yylval=8;return(MONTH);}
  84. {o}{c}{t}{arb}        {yylval=9;return(MONTH);}
  85. {n}{o}{v}{arb}        {yylval=10;return(MONTH);}
  86. {d}{e}{c}{arb}        {yylval=11;return(MONTH);}
  87.  
  88. {filesys}        {return(FILESYS);}
  89. {newline}        {return(NEWLINE);}
  90. {comma}            {return(COMMA);}
  91.  
  92. [ \t,]    ;
  93.