%{ #include "lexsyn.tab.c" #include int yy_private_lines = 1; int yyerror(){printf("Configuration file error at line %d -- %s.\n",yy_private_lines,yy_private_error_guess); exit(1);} %} %option noyywrap %% ; { return SEMICOLON; } \{ { return LEFTBRACE; } \} { return RIGHTBRACE; } replication { return REPLICATION; } source { return SOURCE; } target { return TARGET; } = { return EQUAL; } [a-zA-Z_][a-zA-Z0-9_]+ { yylval = (int)strdup(yytext); return NAME; } [0-9_]+ { yylval = (int)strdup(yytext); return NUMBER; } \"[^"]*\" { yylval = (int)strndup((char *)yytext+1,(size_t)strlen(yytext+1)-1); return STRING; } \[ { return LEFTBRACKET; } \] { return RIGHTBRACKET; } , { return COMMA; } #.*\n { /* consume comments */ } \n { yy_private_lines++; } \/\/.*\n { yy_private_lines++; } [ \t]+ { } . { yy_private_error_guess = "syntax error"; yyerror(); }