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

Method parse_conditional_expression

parser/src/parser/parser.rs:1530–1546  ·  view source on GitHub ↗

https://docs.python.org/3/reference/expressions.html#conditional-expressions

(&mut self)

Source from the content-addressed store, hash-verified

1528
1529 // https://docs.python.org/3/reference/expressions.html#conditional-expressions
1530 fn parse_conditional_expression(&mut self) -> Result<Expression, ParsingError> {
1531 let node = self.start_node();
1532 let or_test = self.parse_or_test();
1533 if self.eat(Kind::If) {
1534 let test = self.parse_or_test()?;
1535 self.expect(Kind::Else)?;
1536 let or_else = self.parse_expression()?;
1537 return Ok(Expression::IfExp(Box::new(IfExp {
1538 node: self.finish_node(node),
1539 test,
1540 body: or_test?,
1541 orelse: or_else,
1542 })));
1543 }
1544
1545 or_test
1546 }
1547
1548 // https://docs.python.org/3/reference/expressions.html#assignment-expressions
1549 fn parse_named_expression(&mut self) -> Result<Expression, ParsingError> {

Callers 1

parse_expressionMethod · 0.80

Calls 7

IfExpClass · 0.85
start_nodeMethod · 0.80
parse_or_testMethod · 0.80
eatMethod · 0.80
expectMethod · 0.80
parse_expressionMethod · 0.80
finish_nodeMethod · 0.80

Tested by

no test coverage detected