X-Git-Url: http://lambda.jimpryor.net/git/gitweb.cgi?p=lambda.git;a=blobdiff_plain;f=code%2Fparse.js;h=4d2bc8d6b027d3b40b96d12737b8c33b5fa11b3f;hp=382ba029427d0335004c456b71137b2f9b711148;hb=53455875b3b1b72c8c0001408ab789f6954c2326;hpb=a3b99e629ce7473014b705dbb8ea9c4321639805 diff --git a/code/parse.js b/code/parse.js index 382ba029..4d2bc8d6 100644 --- a/code/parse.js +++ b/code/parse.js @@ -4,6 +4,9 @@ // http://javascript.crockford.com/tdop/index.html // Douglas Crockford 2010-06-26 +// See also http://effbot.org/zone/simple-top-down-parsing.htm + + /*jslint onevar: false */ @@ -65,6 +68,7 @@ var make_parse = function () { } }; + /* try { if (console && console.debug) { function print() { @@ -72,6 +76,7 @@ var make_parse = function () { } } } catch (e) {} + */ var symbol = function (id) { var s = symbol_table[id]; @@ -176,7 +181,11 @@ var make_parse = function () { res = make_lam2(s, z, res); number_table[this.value] = res; } - return res; + if (this.first) { + return make_app(this.first.handler(), res); + } else { + return res; + } } var constant = function (s, v) {