diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/comp/front/parser.rs | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/comp/front/parser.rs b/src/comp/front/parser.rs index 3579a3a0..4817d960 100644 --- a/src/comp/front/parser.rs +++ b/src/comp/front/parser.rs @@ -2168,10 +2168,25 @@ impure fn parse_crate_directive(parser p) -> ast.crate_directive } } } + + case (token.LET) { + p.bump(); + expect(p, token.LPAREN); + auto id = parse_ident(p); + expect(p, token.EQ); + auto x = parse_expr(p); + expect(p, token.RPAREN); + expect(p, token.LBRACE); + auto v = parse_crate_directives(p, token.RBRACE); + hi = p.get_span(); + expect(p, token.RBRACE); + ret spanned(lo, hi, ast.cdir_let(id, x, v)); + } } fail; } + impure fn parse_crate_directives(parser p, token.token term) -> vec[@ast.crate_directive] { |