From 418f6ed5dd00e296b87b202a99753632fc593382 Mon Sep 17 00:00:00 2001 From: Teddy Date: Sun, 4 Aug 2013 16:19:29 +0800 Subject: added more error report --- parser.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'parser.cpp') diff --git a/parser.cpp b/parser.cpp index e1724c3..ecfafab 100644 --- a/parser.cpp +++ b/parser.cpp @@ -2,6 +2,8 @@ #include #include #include "parser.h" +#include "exc.h" +#include "consts.h" #include "builtin.h" using std::stringstream; @@ -85,8 +87,10 @@ Cons *ASTGenerator::absorb(Tokenizor *tk) { else if (token == ")") { Cons *lst = empty_list; - while (*(--top_ptr)) + while (top_ptr >= parse_stack && *(--top_ptr)) lst = new Cons(*top_ptr, lst); // Collect the list + if (top_ptr < parse_stack) + throw NormalError(READ_ERR_UNEXPECTED_RIGHT_BRACKET); *top_ptr++ = lst; } else *top_ptr++ = ASTGenerator::to_obj(token); -- cgit v1.2.3