X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?a=blobdiff_plain;f=code%2Fparse.js;h=27182189aa9b29b3e9b89a9d0765a7731911d078;hb=6f288f5b1aaa1d42e7f98682e74143fc66e1b53c;hp=7749c69582554b3ce9fc8f2e9ec1a0eb87d8f849;hpb=d3ad170e4366d7e6e33b27e83d9bcc244fe43988;p=lambda.git diff --git a/code/parse.js b/code/parse.js index 7749c695..27182189 100644 --- a/code/parse.js +++ b/code/parse.js @@ -79,7 +79,6 @@ var make_parse = function () { s = Object.create(original_symbol); s.id = s.value = id; symbol_table[id] = s; - print(s, s.arity); } return s; }; @@ -213,7 +212,11 @@ var make_parse = function () { n = token; advance(); } - if (token.id === ".") { + if (token.arity === "literal" && t.first.length === 0) { + t.first.push(n); + t.second = token; + advance(); + } else if (token.id === ".") { t.first.push(n); advance(); t.second = expression(in_let); @@ -249,8 +252,8 @@ var make_parse = function () { n = token; advance(")"); } else { - if (token.arity !== "name") { - token.error("Expected a variable name."); + if (token.arity !== "name" && token.arity !== "literal") { + token.error("Expected a variable name or literal."); } token.first = n; n = token;