aboutsummaryrefslogtreecommitdiff
path: root/parser.cpp
diff options
context:
space:
mode:
authorTeddy <ted.sybil@gmail.com>2013-08-07 00:56:37 +0800
committerTeddy <ted.sybil@gmail.com>2013-08-07 00:56:37 +0800
commitcecd643ab2de3e4dbd69e76c58b928ab2aa2a80f (patch)
tree773d94e7a4309b32d61ee724b8dfd82e2e460221 /parser.cpp
parentdd6394d93dc21305e26232891daf5b19c226dd3a (diff)
list checking fix
Diffstat (limited to 'parser.cpp')
-rw-r--r--parser.cpp6
1 files changed, 4 insertions, 2 deletions
diff --git a/parser.cpp b/parser.cpp
index 56b3dd9..f667933 100644
--- a/parser.cpp
+++ b/parser.cpp
@@ -175,9 +175,11 @@ Cons *ASTGenerator::absorb(Tokenizor *tk) {
EvalObj *obj = TO_EVAL(*top_ptr);
if (obj->is_sym_obj() && static_cast<SymObj*>(obj)->val == ".")
{
- improper = true;
- if (lst == empty_list || TO_CONS(lst)->cdr != empty_list)
+ if (improper ||
+ lst == empty_list ||
+ TO_CONS(lst)->cdr != empty_list)
throw NormalError(PAR_ERR_IMPROPER_PAIR);
+ improper = true;
lst = TO_CONS(lst)->car;
}
else