aboutsummaryrefslogtreecommitdiff
path: root/src/parser/grammar/expressions.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/parser/grammar/expressions.rs')
-rw-r--r--src/parser/grammar/expressions.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/parser/grammar/expressions.rs b/src/parser/grammar/expressions.rs
index 3704cb16f..2145b8d8b 100644
--- a/src/parser/grammar/expressions.rs
+++ b/src/parser/grammar/expressions.rs
@@ -14,7 +14,20 @@ pub(super) fn literal(p: &mut Parser) -> bool {
14} 14}
15 15
16pub(super) fn expr(p: &mut Parser) { 16pub(super) fn expr(p: &mut Parser) {
17 if !literal(p) { 17 if literal(p) {
18 p.error("expected expression"); 18 return;
19 } 19 }
20
21 match p.current() {
22 L_PAREN => tuple_expr(p),
23 _ => p.error("expected expression"),
24 }
25}
26
27fn tuple_expr(p: &mut Parser) {
28 assert!(p.at(L_PAREN));
29 let m = p.start();
30 p.expect(L_PAREN);
31 p.expect(R_PAREN);
32 m.complete(p, TUPLE_EXPR);
20} 33}