V10/cmd/2500/lex.l

%{
#include	"hdr.h"
#include	"x.tab.h"
#undef	getc
#undef	output
#define	output(x)	(void)(x)
extern debug;
extern char *strdup();
%}
%%

audio1		return(AUDIO1);
audio2		return(AUDIO2);
audio3		return(AUDIO3);
auto		return(AUTO);
cue		return(CUE);
edit		return(EDIT);
frame		return(FRAME);
fwd		return(FWD);
go		return(GO);
help		return(HELP);
insert		return(INSERT);
ltc		return(LTC);
loop		return(LOOP);
mode		return(MODE);
off		return(OFF);
on		return(ON);
play		return(PLAY);
preroll		return(PREROLL);
rec		return(REC);
remote		return(REMOTE);
rev		return(REV);
set		return(SET);
shoot		return(SHOOT);
sleep		return(SLEEP);
snap		return(SNAP);
standby		return(STANDBY);
status		return(STATUS);
step		return(STEP);
still		return(STILL);
stop		return(STOP);
t1		return(T1);
t2		return(T2);
tcr		return(TCR);
time		return(TIME);
ub		return(UB);
video		return(VIDEO);
vidsync		return(VIDSYNC);
view		return(VIEW);
vitc		return(VITC);
wait		return(WAIT);
[0123456789]+	{ yylval.ival = atoi(yytext); return(NUMBER); }
\n		{ yylineno++; return('\n'); }
#.*		{ ; /* comment */ }
[ \t]+		{ ; /* white space */ }
^!.*		{ Fflush(logfd);if(!debug) system(yytext+1); print("!\n"); }
\"[^"]*\"	{ yytext[yyleng-1] = 0; yylval.str = strdup(yytext+1); return(STRING); }
.		{ return(yytext[0]); }

%%