diff options
Diffstat (limited to 'lisc/parse.c')
-rw-r--r-- | lisc/parse.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/lisc/parse.c b/lisc/parse.c index 22ab34b..d9eda74 100644 --- a/lisc/parse.c +++ b/lisc/parse.c @@ -778,12 +778,9 @@ parsedat(void cb(Dat *)) cb(&d); } -Fn * -parse(FILE *f, void data(Dat *)) +void +parse(FILE *f, void data(Dat *), void func(Fn *)) { - Fn *fn; - - fn = 0; inf = f; lnum = 1; thead = TXXX; @@ -791,12 +788,7 @@ parse(FILE *f, void data(Dat *)) for (;;) switch (nextnl()) { case TFunc: - if (fn) - /* todo, support multiple - * functions per file - */ - diag("too many functions"); - fn = parsefn(); + func(parsefn()); break; case TType: parsetyp(); @@ -805,7 +797,7 @@ parse(FILE *f, void data(Dat *)) parsedat(data); break; case TEOF: - return fn; + return; default: err("top-level definition expected"); break; |