(&mut self)
| 242 | } |
| 243 | |
| 244 | fn parse_simple_statement(&mut self) -> Result<Statement, ParsingError> { |
| 245 | let stmt = match self.cur_kind() { |
| 246 | Kind::Assert => self.parse_assert_statement(), |
| 247 | Kind::Pass => self.parse_pass_statement(), |
| 248 | Kind::Del => self.parse_del_statement(), |
| 249 | Kind::Return => self.parse_return_statement(), |
| 250 | // https://docs.python.org/3/reference/simple_stmts.html#the-yield-statement |
| 251 | Kind::Yield => Ok(Statement::ExpressionStatement(Box::new( |
| 252 | self.parse_yield_expression()?, |
| 253 | ))), |
| 254 | Kind::Raise => self.parse_raise_statement(), |
| 255 | Kind::Break => self.parse_break_statement(), |
| 256 | Kind::Continue => self.parse_continue_statement(), |
| 257 | Kind::Import => self.parse_import_statement(), |
| 258 | Kind::From => self.parse_from_import_statement(), |
| 259 | Kind::Global => self.parse_global_statement(), |
| 260 | Kind::Nonlocal => self.parse_nonlocal_statement(), |
| 261 | other => { |
| 262 | if self.cur_kind() == Kind::Indent { |
| 263 | panic!("Unexpected token {:?}", self.cur_token()); |
| 264 | } else { |
| 265 | self.parse_assignment_or_expression_statement() |
| 266 | } |
| 267 | } |
| 268 | }?; |
| 269 | |
| 270 | self.err_if_statement_not_ending_in_new_line_or_semicolon(stmt.get_node(), &stmt); |
| 271 | |
| 272 | Ok(stmt) |
| 273 | } |
| 274 | |
| 275 | fn parse_compound_statement(&mut self) -> Result<Statement, ParsingError> { |
| 276 | match self.cur_kind() { |
no test coverage detected