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