1 %{ 2 /* 3 * Configuration file lexer for Verified exec 4 * 5 * 6 */ 7 8 #include <stdio.h> 9 #include <string.h> 10 #include "veriexecctl_parse.h" 11 12 int lineno = 1; 13 14 void yyerror(const char *message); 15 void warning(const char *message); 16 int yylex __P((void)); 17 18 %} 19 20 %% 21 22 path { return PATH; } 23 string { return STRING; } 24 eol { return EOL; } 25 26 \/[^ ]+ { 27 yylval.string = strdup(yytext); 28 return PATH; 29 } 30 31 [0-9a-zA-Z]+ { 32 yylval.string = strdup(yytext); 33 return STRING; 34 } 35 36 \n { 37 lineno++; /* for error reporting */ 38 return EOL; 39 } 40 41 [ \t\r] ; /* eat white ones */ 42 43 #.* ; /* comment */ 44 45 . yyerror("invalid character"); 46 47 %% 48 49 void yyerror(const char *string) 50 { 51 fprintf(stderr, "%d: %s at %s\n", lineno, string, yytext); 52 } 53