13 %type <re> expr0 expr1 expr2 expr3 expr4
16 %token LLPAREN LRPAREN LALT LSTAR LPLUS LQUES
17 %token LBEGIN LEND LDOT LBAD LNEWLINE
22 yyerror("empty pattern");
28 $$ = re2cat(re2star(re2or(re2char(0x00, '\n'-1), re2char('\n'+1, 0xff))), $$);
30 $$ = re2cat(re2star(re2char(0x00, 0xff)), $$);
43 | LSTAR { literal = 1; } expr1
71 patchnext($1.end, $$.beg);
81 appendnext($$.end, $$.beg);
104 $$ = re2class("^\n");
110 | LLPAREN expr1 LRPAREN
121 yyerror(char *e, ...)
127 fprint(2, "%s:%ld: ", filename, lineno);
129 fprint(2, "%s: ", pattern);
150 if(c != 0 && c != '\n') {
207 eq = q + nelem(u.string) - 5;
219 error("class too long");
220 if(c == ']' || c == 0)
234 yylval.str = u.string;