MCPcopy Create free account
hub / github.com/AlenVelocity/MeowScript / parse_expr_list

Method parse_expr_list

src/parser.rs:330–360  ·  view source on GitHub ↗
(&mut self, end: Token)

Source from the content-addressed store, hash-verified

328
329
330 fn parse_expr_list(&mut self, end: Token) -> Option<Vec<Expr>> {
331 let mut list = vec![];
332 if self.peek_token(&end) {
333 self.next_token();
334 return Some(list);
335 }
336
337 self.next_token();
338 match self.parse_expr(Precedence::Lowest) {
339 Some(a) => list.push(a),
340 None => return None,
341 };
342 while self.peek_token(&Token::Comma) {
343 self.next_token();
344 if self.peek_token(&Token::RightBracket) {
345 break;
346 }
347 self.next_token();
348
349 match self.parse_expr(Precedence::Lowest) {
350 Some(expr) => list.push(expr),
351 None => return None,
352 }
353 }
354
355 if !self.expect_peek(end) {
356 return None;
357 }
358
359 Some(list)
360 }
361
362 fn parse_ident(&mut self) -> Option<Expr> {
363 match self.current_token {

Callers 1

parse_array_literalMethod · 0.80

Calls 4

peek_tokenMethod · 0.80
parse_exprMethod · 0.80
expect_peekMethod · 0.80
next_tokenMethod · 0.45

Tested by

no test coverage detected