Reads statements until the `delim` keyword is found. The delimiter is not consumed.
(&mut self, delim: Token)
| 301 | |
| 302 | /// Reads statements until the `delim` keyword is found. The delimiter is not consumed. |
| 303 | fn parse_until(&mut self, delim: Token) -> Result<Vec<Statement>> { |
| 304 | let mut stmts = vec![]; |
| 305 | loop { |
| 306 | let peeked = self.lexer.peek()?; |
| 307 | if peeked.token == delim { |
| 308 | break; |
| 309 | } else if peeked.token == Token::Eol { |
| 310 | self.lexer.consume_peeked(); |
| 311 | continue; |
| 312 | } |
| 313 | match self.parse_one_safe()? { |
| 314 | Some(stmt) => stmts.push(stmt), |
| 315 | None => break, |
| 316 | } |
| 317 | } |
| 318 | Ok(stmts) |
| 319 | } |
| 320 | |
| 321 | /// Parses an assignment for the variable reference `vref` already read. |
| 322 | fn parse_assignment(&mut self, vref: VarRef, vref_pos: LineCol) -> Result<Statement> { |
no test coverage detected