From 645549b8a42844fc5a8042a4808c8ebf5050d7da Mon Sep 17 00:00:00 2001 From: Teddy Date: Sun, 4 Aug 2013 23:35:59 +0800 Subject: added support for `cons`, `car`, `cdr` --- parser.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'parser.cpp') diff --git a/parser.cpp b/parser.cpp index 8de812f..f4de5a2 100644 --- a/parser.cpp +++ b/parser.cpp @@ -103,7 +103,11 @@ Cons *ASTGenerator::absorb(Tokenizor *tk) { { Cons *lst = empty_list; while (top_ptr >= parse_stack && *(--top_ptr)) - lst = new Cons(*top_ptr, lst); // Collect the list + { + Cons *_lst = new Cons(*top_ptr, lst); // Collect the list + _lst->next = lst == empty_list ? NULL : lst; + lst = _lst; + } if (top_ptr < parse_stack) throw NormalError(READ_ERR_UNEXPECTED_RIGHT_BRACKET); *top_ptr++ = lst; -- cgit v1.2.3