%option nounput %option noyyget_lineno %option noyyset_lineno %option noyyget_debug %option noyyset_debug %option noyyget_in %option noyyget_out %option noyyget_leng %option noyyget_text %option noyyset_in %option noyyset_out %option case-insensitive %option never-interactive %{ #include #include "fhost.h" static struct fsp_host *host=NULL; %} DIGIT [0-9] NUMBER {DIGIT}+ WHITECHAR [ \t\n\r] OPTWHITESPACE {WHITECHAR}* WHITESPACE {WHITECHAR}+ COMMENT #.*$ IPADDRESS {NUMBER}\.{NUMBER}\.{NUMBER}\.{NUMBER} HOSTNAME [[:alpha:]][\-._[:alnum:]]+ /* stavy */ %s shostname %s shost %s sport %s salias %s slport %s sdir %s sldir %s sdelay %s spassword %s stimeout %% {COMMENT} /* ignore comments */ ^{WHITESPACE} /* ignore whitespace at begining of line */ ^{OPTWHITESPACE}(host|machine){WHITESPACE} { add_host(host); host=NULL; BEGIN(shostname); } {HOSTNAME} { host=init_host(); /* printf("host %s!\n",yytext); */ host->hostname=strdup(yytext); BEGIN(shost); } {IPADDRESS} { host=init_host(); /* printf("ihost %s!\n",yytext); */ host->hostaddr=strdup(yytext); BEGIN(shost); } .|\n fprintf(stderr,"invalid hostname `%s`\n",yytext);BEGIN(INITIAL); (fsp{WHITESPACE})?port BEGIN(sport); {WHITESPACE} {NUMBER} host->port=atoi(yytext);BEGIN(shost); .|\n fprintf(stderr,"invalid port `%s`\n",yytext);BEGIN(shost); alias{WHITESPACE} BEGIN(salias); {HOSTNAME} add_host_alias(host,yytext);BEGIN(shost); local{WHITESPACE}port BEGIN(slport); {WHITESPACE} {NUMBER} host->local_port=atoi(yytext);BEGIN(shost); (fsp{WHITESPACE})?directory{WHITESPACE} BEGIN(sdir); \/[[:graph:]]* host->dir=strdup(yytext);BEGIN(shost); .|\n fprintf(stderr,"invalid directory `%s`\n",yytext);BEGIN(shost); local{WHITESPACE}directory{WHITESPACE} BEGIN(sldir); [[:graph:]]* host->local_dir=strdup(yytext);BEGIN(shost); .|\n fprintf(stderr,"invalid local directory `%s`\n",yytext);BEGIN(shost); delay BEGIN(sdelay); {WHITESPACE} {NUMBER} host->delay=atoi(yytext);BEGIN(shost); .|\n fprintf(stderr,"invalid delay `%s`\n",yytext);BEGIN(shost); timeout BEGIN(stimeout); {WHITESPACE} {NUMBER} host->timeout=atoi(yytext);BEGIN(shost); .|\n fprintf(stderr,"invalid timeout `%s`\n",yytext);BEGIN(shost); trace{WHITESPACE}on host->trace=1; trace{WHITESPACE}off host->trace=0; password{WHITESPACE} BEGIN(spassword); [[:graph:]]+ host->password=strdup(yytext);BEGIN(shost); <> add_host(host);host=NULL;yyterminate(); {WHITECHAR} /* ignore */ . fprintf(stderr," %s",yytext);/* no default rule */ %%