tweak lambda evaluator
[lambda.git] / code / parse.js
index cb412f7..7749c69 100644 (file)
@@ -34,10 +34,10 @@ var make_parse = function () {
         a = t.type;
         if (a === "name") {
             o = symbol_table[v];
-            if (o && typeof o !== 'function') {
-                a = "keyword";
-            } else {
+            if (!o || typeof o === 'function') {
                 o = symbol_table["(name)"];
+            } else {
+                a = o.arity || "keyword";
             }
         } else if (a ===  "number") {
             o = symbol_table["(literal)"];
@@ -150,10 +150,10 @@ var make_parse = function () {
                        var x = symbol(s);
                        x.handler = function () {
                                this.value = symbol_table[this.id].value;
-                               this.arity = "literal";
                                return this;
                        };
                        x.value = v;
+                       x.arity = "literal";
                        return x;
                };