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

Method parse_comparison

parser/src/parser/parser.rs:2074–2094  ·  view source on GitHub ↗

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

(&mut self)

Source from the content-addressed store, hash-verified

2072
2073 // https://docs.python.org/3/reference/expressions.html#comparisons
2074 fn parse_comparison(&mut self) -> Result<Expression, ParsingError> {
2075 let node = self.start_node();
2076 let or_expr = self.parse_or_expr()?;
2077 let mut ops = vec![];
2078 let mut comparators = vec![];
2079 while self.cur_kind().is_comparison_operator() {
2080 ops.push(self.parse_comp_operator()?);
2081 comparators.push(self.parse_or_expr()?);
2082 }
2083
2084 if !ops.is_empty() {
2085 return Ok(Expression::Compare(Box::new(Compare {
2086 node: self.finish_node(node),
2087 left: or_expr,
2088 ops,
2089 comparators,
2090 })));
2091 }
2092
2093 Ok(or_expr)
2094 }
2095
2096 // Binary bitwise operations
2097 // https://docs.python.org/3/reference/expressions.html#binary-bitwise-operations

Callers 1

parse_not_testMethod · 0.80

Calls 8

CompareClass · 0.85
start_nodeMethod · 0.80
parse_or_exprMethod · 0.80
cur_kindMethod · 0.80
parse_comp_operatorMethod · 0.80
finish_nodeMethod · 0.80
is_emptyMethod · 0.45

Tested by

no test coverage detected