projects
/
lambda.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
tweak lambda evaluator
[lambda.git]
/
code
/
parse.js
diff --git
a/code/parse.js
b/code/parse.js
index
dfa0640
..
4fbab09
100644
(file)
--- a/
code/parse.js
+++ b/
code/parse.js
@@
-193,14
+193,8
@@
var make_parse = function () {
return n;
}
}
return n;
}
}
- if (token.arity !== "name") {
- token.error("Expected a variable name.");
- }
- token.first = n;
- n = token;
- advance();
while (true) {
while (true) {
-
if (in_let && token.id === "in" || token.id === "(end)" || token.id === ")"
) {
+
if (n && (in_let && token.id === "in" || token.id === "(end)" || token.id === ")")
) {
return n;
} else if (token.id === "(") {
advance();
return n;
} else if (token.id === "(") {
advance();
@@
-243,9
+237,15
@@
var make_parse = function () {
eq = token; // token.id === "="
advance("=");
c = expression(true);
eq = token; // token.id === "="
advance("=");
c = expression(true);
- c.first = eq;
- eq.second = t;
- target.second = c;
+
+ eq.first = t;
+ eq.second = c;
+ target.second = eq;
+
+// c.first = eq;
+// eq.second = t;
+// target.second = c;
+
target = t;
advance("in");
}
target = t;
advance("in");
}