home *** CD-ROM | disk | FTP | other *** search
/ ftp.ee.lbl.gov / 2014.05.ftp.ee.lbl.gov.tar / ftp.ee.lbl.gov / bmd-1.0beta.tar.Z / bmd-1.0beta.tar / bmd-1.0beta / app / omtd / scan.l < prev    next >
Text File  |  1991-03-14  |  1KB  |  66 lines

  1. %{
  2. #include "token.h"
  3. extern char *intern();
  4.  
  5. extern YYSTYPE yylval;
  6. %}
  7.  
  8. %%
  9. clear                return TK_CLEAR;
  10. off                return TK_OFF;
  11. quit                return TK_QUIT;
  12. run                return TK_RUN;
  13. stop                return TK_STOP;
  14. print                return TK_PRINT;
  15. merge                return TK_MERGE;
  16. tempo                return TK_TEMPO;
  17. dump                return TK_DUMP;
  18. echo                return TK_ECHO;
  19. channel                return TK_CHANNEL;
  20. move                return TK_MOVE;
  21. click                return TK_CLICK;
  22. delete                return TK_DELETE;
  23. copy                return TK_COPY;
  24. mute                return TK_MUTE;
  25. unmute                return TK_UNMUTE;
  26. quantize            return TK_QUANTIZE;
  27. save                return TK_SAVE;
  28. load                return TK_LOAD;
  29. tracks                return TK_TRACKS;
  30. new                return TK_NEW;
  31. insert                return TK_INSERT;
  32. volume                return TK_VOLUME;
  33. trans                return TK_TRANS;
  34. set                return TK_SET;
  35. setting                return TK_SETTING;
  36. [ \t]+                ;
  37. [a-zA-Z_][a-zA-Z_0-9]*        { yylval.s = intern(yytext); return TK_ID; }
  38. [0-9]+                { yylval.i = stoi(yytext); return TK_INT; }
  39. [/.,;:\n]            { return *yytext; }
  40. .                { lex_err(*yytext); }
  41. %%
  42. lex_err(c)
  43.     int c;
  44. {
  45.     if (isprint(c))
  46.         fprintf(stderr, "lexical error on character '%c'\n", c);
  47.     else
  48.         fprintf(stderr, "lexical error on character '\\%c%c%c'\n",
  49.             (unsigned)c & (8 * 2 - 1), 
  50.             (unsigned)c & (8 * 1 - 1), 
  51.             (unsigned)c & (8 * 0 - 1));
  52. }
  53. #ifndef FLEX_SCANNER
  54. yywrap()
  55. {
  56.     return 1;
  57. }
  58. sync_scanner()
  59. {}
  60. #else
  61. sync_scanner()
  62. {
  63.     yyrestart(yyin);
  64. }
  65. #endif
  66.