MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / parse_and_expr

Function parse_and_expr

nodedb/src/control/security/predicate_parser.rs:155–171  ·  view source on GitHub ↗
(tokens: &[String], pos: &mut usize)

Source from the content-addressed store, hash-verified

153}
154
155fn parse_and_expr(tokens: &[String], pos: &mut usize) -> Result<RlsPredicate, PredicateParseError> {
156 let mut left = parse_atom(tokens, pos)?;
157
158 while *pos < tokens.len() && tokens[*pos].to_uppercase() == "AND" {
159 *pos += 1;
160 let right = parse_atom(tokens, pos)?;
161 left = match left {
162 RlsPredicate::And(mut children) => {
163 children.push(right);
164 RlsPredicate::And(children)
165 }
166 _ => RlsPredicate::And(vec![left, right]),
167 };
168 }
169
170 Ok(left)
171}
172
173fn parse_atom(tokens: &[String], pos: &mut usize) -> Result<RlsPredicate, PredicateParseError> {
174 if *pos >= tokens.len() {

Callers 1

parse_or_exprFunction · 0.85

Calls 3

parse_atomFunction · 0.70
lenMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected