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

Method parse_raise_statement

parser/src/parser/parser.rs:1317–1335  ·  view source on GitHub ↗

https://docs.python.org/3/reference/simple_stmts.html#the-raise-statement

(&mut self)

Source from the content-addressed store, hash-verified

1315
1316 // https://docs.python.org/3/reference/simple_stmts.html#the-raise-statement
1317 fn parse_raise_statement(&mut self) -> Result<Statement, ParsingError> {
1318 let node = self.start_node();
1319 self.bump(Kind::Raise);
1320 let exc = if matches!(self.cur_kind(), Kind::NewLine | Kind::Eof) {
1321 None
1322 } else {
1323 Some(self.parse_expression()?)
1324 };
1325 let cause = if self.eat(Kind::From) {
1326 Some(self.parse_expression()?)
1327 } else {
1328 None
1329 };
1330 Ok(Statement::Raise(Box::new(Raise {
1331 node: self.finish_node(node),
1332 exc,
1333 cause,
1334 })))
1335 }
1336
1337 // https://docs.python.org/3/reference/simple_stmts.html#the-break-statement
1338 fn parse_break_statement(&mut self) -> Result<Statement, ParsingError> {

Callers 1

Calls 6

RaiseClass · 0.85
start_nodeMethod · 0.80
bumpMethod · 0.80
parse_expressionMethod · 0.80
eatMethod · 0.80
finish_nodeMethod · 0.80

Tested by

no test coverage detected