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> {
320
320
}
321
321
322
322
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." ) ,
326
327
}
327
328
let rep: Repeater = match c {
328
329
'?' => 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:]]"}
142
142
noparse ! { fail_range_end_no_begin, r"[a-\A]" }
143
143
noparse ! { fail_range_end_no_end, r"[a-\z]" }
144
144
noparse ! { fail_range_end_no_boundary, r"[a-\b]" }
145
+ noparse ! { fail_repeat_no_expr, r"-|+" }
145
146
146
147
macro_rules! mat {
147
148
( $name: ident, $re: expr, $text: expr, $( $loc: tt) +) => (
You can’t perform that action at this time.
0 commit comments