7 char *yylp; /* next character to be lex'd */
9 char *yyend; /* end of buffer to be parsed */
30 { $2->l = $1; $2->r = $3; $$ = $2; }
32 { $2->l = newfilter();
40 { $1->l = $3; free($2); free($4); $$ = $1; }
42 { free($1); free($3); $$ = $2; }
44 { $2->l = $1; $2->r = $3; $$ = $2; }
46 { $2->l = $1; $2->r = $3; $$ = $2; }
48 { $1->l = $2; $$ = $1; }
53 * Initialize the parsing. Done once for each header field.
76 p = strpbrk(yylp, "!|&()= ");
79 yylval->s = strdup(yylp);
81 sysfatal("parsing filter: %r");
89 yylval->s = strdup(yylp);
91 sysfatal("parsing filter: %r");
98 if(c == '!' && *yylp == '='){
102 else if(c == '&' && *yylp == '&'){
106 else if(c == '|' && *yylp == '|'){
117 sysfatal("error parsing filter");