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

Function parse_or_expr

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

Source from the content-addressed store, hash-verified

135// ── Recursive Descent Parser ────────────────────────────────────────────
136
137fn parse_or_expr(tokens: &[String], pos: &mut usize) -> Result<RlsPredicate, PredicateParseError> {
138 let mut left = parse_and_expr(tokens, pos)?;
139
140 while *pos < tokens.len() && tokens[*pos].to_uppercase() == "OR" {
141 *pos += 1;
142 let right = parse_and_expr(tokens, pos)?;
143 left = match left {
144 RlsPredicate::Or(mut children) => {
145 children.push(right);
146 RlsPredicate::Or(children)
147 }
148 _ => RlsPredicate::Or(vec![left, right]),
149 };
150 }
151
152 Ok(left)
153}
154
155fn parse_and_expr(tokens: &[String], pos: &mut usize) -> Result<RlsPredicate, PredicateParseError> {
156 let mut left = parse_atom(tokens, pos)?;

Callers 2

parse_predicateFunction · 0.85
parse_atomFunction · 0.85

Calls 3

parse_and_exprFunction · 0.85
lenMethod · 0.45
pushMethod · 0.45

Tested by

no test coverage detected