File tree Expand file tree Collapse file tree 2 files changed +5
-3
lines changed Expand file tree Collapse file tree 2 files changed +5
-3
lines changed Original file line number Diff line number Diff line change @@ -320,9 +320,10 @@ impl<'a> Parser<'a> {
320320 }
321321
322322 fn push_repeater ( & mut self , c : char ) -> Result < ( ) , Error > {
323- if self . stack . len ( ) == 0 {
324- return self . err (
325- "A repeat operator must be preceded by a valid expression." )
323+ match self . stack . last ( ) {
324+ Some ( & Expr ( ..) ) => ( ) ,
325+ // self.stack is empty, or the top item is not an Expr
326+ _ => return self . err ( "A repeat operator must be preceded by a valid expression." ) ,
326327 }
327328 let rep: Repeater = match c {
328329 '?' => ZeroOne , '*' => ZeroMore , '+' => OneMore ,
Original file line number Diff line number Diff line change @@ -142,6 +142,7 @@ noparse!{fail_range_end_no_class, "[a-[:lower:]]"}
142142noparse ! { fail_range_end_no_begin, r"[a-\A]" }
143143noparse ! { fail_range_end_no_end, r"[a-\z]" }
144144noparse ! { fail_range_end_no_boundary, r"[a-\b]" }
145+ noparse ! { fail_repeat_no_expr, r"-|+" }
145146
146147macro_rules! mat {
147148 ( $name: ident, $re: expr, $text: expr, $( $loc: tt) +) => (
You can’t perform that action at this time.
0 commit comments