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 >
Wrap
Text File
|
1991-03-14
|
1KB
|
66 lines
%{
#include "token.h"
extern char *intern();
extern YYSTYPE yylval;
%}
%%
clear return TK_CLEAR;
off return TK_OFF;
quit return TK_QUIT;
run return TK_RUN;
stop return TK_STOP;
print return TK_PRINT;
merge return TK_MERGE;
tempo return TK_TEMPO;
dump return TK_DUMP;
echo return TK_ECHO;
channel return TK_CHANNEL;
move return TK_MOVE;
click return TK_CLICK;
delete return TK_DELETE;
copy return TK_COPY;
mute return TK_MUTE;
unmute return TK_UNMUTE;
quantize return TK_QUANTIZE;
save return TK_SAVE;
load return TK_LOAD;
tracks return TK_TRACKS;
new return TK_NEW;
insert return TK_INSERT;
volume return TK_VOLUME;
trans return TK_TRANS;
set return TK_SET;
setting return TK_SETTING;
[ \t]+ ;
[a-zA-Z_][a-zA-Z_0-9]* { yylval.s = intern(yytext); return TK_ID; }
[0-9]+ { yylval.i = stoi(yytext); return TK_INT; }
[/.,;:\n] { return *yytext; }
. { lex_err(*yytext); }
%%
lex_err(c)
int c;
{
if (isprint(c))
fprintf(stderr, "lexical error on character '%c'\n", c);
else
fprintf(stderr, "lexical error on character '\\%c%c%c'\n",
(unsigned)c & (8 * 2 - 1),
(unsigned)c & (8 * 1 - 1),
(unsigned)c & (8 * 0 - 1));
}
#ifndef FLEX_SCANNER
yywrap()
{
return 1;
}
sync_scanner()
{}
#else
sync_scanner()
{
yyrestart(yyin);
}
#endif