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

Method parse_while_statement

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

Source from the content-addressed store, hash-verified

384 }
385
386 fn parse_while_statement(&mut self) -> Result<Statement, ParsingError> {
387 let node = self.start_node();
388 self.bump(Kind::While);
389 let test = self.parse_named_expression()?;
390 self.expect(Kind::Colon)?;
391 let body = self.parse_suite()?;
392 let orelse = if self.at(Kind::Else) {
393 self.bump(Kind::Else);
394 self.expect(Kind::Colon)?;
395 self.parse_suite()?
396 } else {
397 vec![]
398 };
399
400 Ok(Statement::WhileStatement(Box::new(While {
401 node: self.finish_node_chomped(node),
402 test,
403 body,
404 orelse,
405 })))
406 }
407
408 fn parse_for_statement(&mut self) -> Result<Statement, ParsingError> {
409 let node = self.start_node();

Callers 1

Calls 7

start_nodeMethod · 0.80
bumpMethod · 0.80
expectMethod · 0.80
parse_suiteMethod · 0.80
atMethod · 0.80
finish_node_chompedMethod · 0.80

Tested by

no test coverage detected