diff options
Diffstat (limited to 'pez.c')
| -rw-r--r-- | pez.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -3039,6 +3039,8 @@ lambdaexpr(Comp *cm, const char *name) } } + ETRY(expectspchr(cm, '{')); + ETRY(block(cm, '}')); ETRY(compop(cm, Oret)); ETRY(fincompfn(cm)); @@ -3268,7 +3270,7 @@ primaryexpr(Comp *cm) } return 1; - case '{': + case '$': return lambdaexpr(cm, NULL); case '#': @@ -4036,7 +4038,7 @@ decl(Comp *cm, struct local **pl, bool nofold) return comperr(cm, c, "expected ':' or '='"), 0; } - if (matchspchr(cm, '{')) { + if (matchspchr(cm, '$')) { // named fn, possibly recursive TRY(l = addlocal(cm, &idx, name, mutable, cm->has_k && !mutable, cm->k)); TRY(lambdaexpr(cm, name)); @@ -4215,7 +4217,7 @@ stmt(Comp *cm) TRY(expectspchr(cm, '=')); TRY(box_str(cm->cx, &key, name, strlen(name))); TRY(compconst(cm, key)); - if (matchspchr(cm, '{')) { + if (matchspchr(cm, '$')) { TRY(lambdaexpr(cm, name)); // named fn } else { TRY(expr(cm)); // initializer |