MCPcopy Create free account
hub / github.com/Glyphack/enderpy / parse_simple_statement

Method parse_simple_statement

parser/src/parser/parser.rs:244–273  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

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() {

Callers 2

parseMethod · 0.80
parse_statement_listMethod · 0.80

Calls 15

cur_kindMethod · 0.80
parse_pass_statementMethod · 0.80
parse_del_statementMethod · 0.80
parse_raise_statementMethod · 0.80
parse_break_statementMethod · 0.80

Tested by

no test coverage detected