From b779025122d5417fdb3c5e17732793e747f44a15 Mon Sep 17 00:00:00 2001 From: Wesley Kerfoot Date: Fri, 27 Dec 2013 03:04:51 -0500 Subject: [PATCH] fixed error handling for let/def --- parse.js | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/parse.js b/parse.js index d2f0317..fa88765 100755 --- a/parse.js +++ b/parse.js @@ -188,7 +188,14 @@ function parseLetForm(tokens, linenum, charnum) { charnum, "Unexpected end of source"); } + linenum = fst(tokens)[2]; + charnum = fst(tokens)[3]; tokens.pop(); + if (tokens.length <= 0) { + throw error.JSyntaxError(linenum, + charnum, + "let/def form must have a body"); + } var body = parse(tokens); return new typ.LetExp(pairs, body); @@ -281,7 +288,9 @@ function parseDef(tokens, linenum, charnum) { if (fst(tokens)[0] === "left_brace") { /* It's a let/def form */ tokens.pop(); - return parseLetForm(tokens); + return parseLetForm(tokens, + fst(tokens)[2], + fst(tokens)[3]); } if (notFollowedBy(tokens, ["identifier"], linenum, charnum)) {