MCPcopy Create free account
hub / github.com/dada-lang/dada / opt_parse_expr_with_precedence

Function opt_parse_expr_with_precedence

components/dada-parser/src/expr.rs:47–63  ·  view source on GitHub ↗
(
    db: &'db dyn crate::Db,
    parser: &mut Parser<'_, 'db>,
    precedence: impl FnOnce(
        &'db dyn crate::Db,
        &mut Parser<'_, 'db>,
    ) -> Result<Option<AstExprKind<'db>>, crate::

Source from the content-addressed store, hash-verified

45}
46
47fn opt_parse_expr_with_precedence<'db>(
48 db: &'db dyn crate::Db,
49 parser: &mut Parser<'_, 'db>,
50 precedence: impl FnOnce(
51 &'db dyn crate::Db,
52 &mut Parser<'_, 'db>,
53 ) -> Result<Option<AstExprKind<'db>>, crate::ParseFail<'db>>,
54) -> Result<Option<AstExpr<'db>>, crate::ParseFail<'db>> {
55 let start_span = parser.peek_span();
56 let Some(kind) = precedence(db, parser)? else {
57 return Ok(None);
58 };
59 Ok(Some(AstExpr::new(
60 start_span.to(db, parser.last_span()),
61 kind,
62 )))
63}
64
65const BINARY_OP_PRECEDENCE: &[&[(Op, AstBinaryOp)]] = &[
66 &[

Callers 2

opt_parseMethod · 0.85
eat_expr_with_precedenceFunction · 0.85

Calls 3

peek_spanMethod · 0.80
toMethod · 0.80
last_spanMethod · 0.80

Tested by

no test coverage detected