aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/parse.cpp6
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