MCPcopy Create free account
hub / github.com/GraphLite-AI/GraphLite / postfix_expression

Function postfix_expression

graphlite/src/ast/parser.rs:2045–2065  ·  view source on GitHub ↗

Parse postfix expressions: primary_expr[index] | primary_expr

(tokens: &[Token])

Source from the content-addressed store, hash-verified

2043
2044/// Parse postfix expressions: primary_expr[index] | primary_expr
2045fn postfix_expression(tokens: &[Token]) -> IResult<&[Token], Expression> {
2046 let (mut remaining, mut expr) = primary_expression(tokens)?;
2047
2048 // Check for array indexing: [expression]
2049 while let Ok((tokens_after_bracket, _)) = expect_token(Token::LeftBracket)(remaining) {
2050 // Parse the index expression
2051 let (tokens_after_index, index_expr) = expression(tokens_after_bracket)?;
2052 let (tokens_after_close, _) = expect_token(Token::RightBracket)(tokens_after_index)?;
2053
2054 // Create an ArrayIndexExpression
2055 expr = Expression::ArrayIndex(ArrayIndexExpression {
2056 array: Box::new(expr),
2057 index: Box::new(index_expr),
2058 location: Location::default(),
2059 });
2060
2061 remaining = tokens_after_close;
2062 }
2063
2064 Ok((remaining, expr))
2065}
2066
2067/// Parse primary expression: (expr) | function_call | property_access | value | case_expr
2068fn primary_expression(tokens: &[Token]) -> IResult<&[Token], Expression> {

Callers

nothing calls this directly

Calls 3

primary_expressionFunction · 0.85
expect_tokenFunction · 0.85
expressionFunction · 0.85

Tested by

no test coverage detected