MCPcopy Create free account
hub / github.com/hashintel/hash / parse_expr

Function parse_expr

libs/@local/hashql/syntax-jexpr/src/parser/expr.rs:21–45  ·  view source on GitHub ↗
(
    state: &mut ParserState<'heap, '_, '_>,
)

Source from the content-addressed store, hash-verified

19]);
20
21pub(crate) fn parse_expr<'heap>(
22 state: &mut ParserState<'heap, '_, '_>,
23) -> Result<Expr<'heap>, ParserDiagnostic> {
24 let token = state
25 .advance(PARSE_EXPR_KINDS)
26 .change_category(ParserDiagnosticCategory::Lexer)?;
27
28 match token.kind.syntax() {
29 SyntaxKind::String => {
30 parse_string(state, token).change_category(ParserDiagnosticCategory::String)
31 }
32 SyntaxKind::LBracket => parse_array(state, token),
33 SyntaxKind::LBrace => parse_object(state, token),
34 SyntaxKind::Number
35 | SyntaxKind::True
36 | SyntaxKind::False
37 | SyntaxKind::Null
38 | SyntaxKind::Comma
39 | SyntaxKind::Colon
40 | SyntaxKind::RBrace
41 | SyntaxKind::RBracket => {
42 unreachable!()
43 }
44 }
45}

Callers 1

parse_exprMethod · 0.50

Calls 6

parse_arrayFunction · 0.85
parse_objectFunction · 0.85
change_categoryMethod · 0.80
syntaxMethod · 0.80
parse_stringFunction · 0.50
advanceMethod · 0.45

Tested by

no test coverage detected