diff options
-rw-r--r-- | src/parse.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/parse.cpp b/src/parse.cpp index 21a9963..81aaa83 100644 --- a/src/parse.cpp +++ b/src/parse.cpp @@ -40,12 +40,12 @@ PEnv::parse(const AST* exp) THROW_IF(tup->empty(), exp->loc, "Call to empty list"); const ALexeme* form = tup->head()->to_lexeme(); if (form) { + if (isupper(form->cppstr.c_str()[0])) // Call constructor (any uppercase symbol) + return parseTuple(*this, tup); + const PEnv::Handler* h = handler(form->cppstr); if (h) return h->func(*this, exp, h->arg); // Parse special form - - if (isupper(form->cppstr.c_str()[0])) // Call constructor (any uppercase symbol) - return parseTuple(*this, tup); } return parseTuple(*this, tup); // Parse regular call |