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

Method parse_expression_list

parser/src/parser/parser.rs:2842–2860  ·  view source on GitHub ↗

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

(&mut self)

Source from the content-addressed store, hash-verified

2840
2841 // https://docs.python.org/3/reference/expressions.html#expression-lists
2842 fn parse_expression_list(&mut self) -> Result<Expression, ParsingError> {
2843 let node = self.start_node();
2844 let mut expressions = vec![];
2845 expressions.push(self.parse_expression()?);
2846 while self.eat(Kind::Comma) && !self.at(Kind::Eof) {
2847 if !self.cur_kind().is_star_expression() {
2848 break;
2849 }
2850 let expr = self.parse_expression()?;
2851 expressions.push(expr);
2852 }
2853 if expressions.len() == 1 {
2854 return Ok(expressions.pop().unwrap());
2855 }
2856 Ok(Expression::Tuple(Box::new(Tuple {
2857 node: self.finish_node(node),
2858 elements: expressions,
2859 })))
2860 }
2861
2862 fn parse_starred_expression_real(&mut self) -> Result<Expression, ParsingError> {
2863 let node = self.start_node();

Callers 3

Calls 9

TupleClass · 0.85
start_nodeMethod · 0.80
parse_expressionMethod · 0.80
eatMethod · 0.80
atMethod · 0.80
is_star_expressionMethod · 0.80
cur_kindMethod · 0.80
finish_nodeMethod · 0.80
lenMethod · 0.45

Tested by

no test coverage detected