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

Method parse_set

parser/src/parser/parser.rs:1844–1868  ·  view source on GitHub ↗

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

(&mut self, node: Node, first_elm: Expression)

Source from the content-addressed store, hash-verified

1842
1843 // https://docs.python.org/3/reference/expressions.html#set-displays
1844 fn parse_set(&mut self, node: Node, first_elm: Expression) -> Result<Expression, ParsingError> {
1845 if !matches!(first_elm, Expression::Starred(_))
1846 && self.at(Kind::For)
1847 && (self.at(Kind::For)
1848 || self.at(Kind::Async) && matches!(self.peek_kind(), Ok(Kind::For)))
1849 {
1850 let generators = self.parse_comp_for()?;
1851 self.consume_whitespace_and_newline();
1852 self.expect(Kind::RightBracket)?;
1853 return Ok(Expression::SetComp(Box::new(SetComp {
1854 node: self.finish_node(node),
1855 element: first_elm,
1856 generators,
1857 })));
1858 }
1859 self.bump(Kind::Comma);
1860 let rest = self.parse_starred_list(Kind::RightBracket)?;
1861 let mut elements = vec![first_elm];
1862 elements.extend(rest);
1863 self.expect(Kind::RightBracket)?;
1864 Ok(Expression::Set(Box::new(Set {
1865 node: self.finish_node(node),
1866 elements,
1867 })))
1868 }
1869
1870 // https://docs.python.org/3/reference/expressions.html#dictionary-displays
1871 fn parse_dict(

Callers 1

parse_dict_or_setMethod · 0.80

Calls 9

SetCompClass · 0.85
SetClass · 0.85
atMethod · 0.80
parse_comp_forMethod · 0.80
expectMethod · 0.80
finish_nodeMethod · 0.80
bumpMethod · 0.80
parse_starred_listMethod · 0.80

Tested by

no test coverage detected