author | Alan Dipert
<alan@dipert.org> 2019-08-22 07:26:53 UTC |
committer | Alan Dipert
<alan@dipert.org> 2019-08-22 07:26:53 UTC |
parent | fab91a560a0744745447c55026ccd0ca89b055ed |
jacl.js | +11 | -5 |
diff --git a/jacl.js b/jacl.js index db77f35..e321f27 100644 --- a/jacl.js +++ b/jacl.js @@ -272,10 +272,16 @@ const readList = async stream => { tok.unread(t); - const car = await rdr.read(), - after = await tok.read(); + const car = await rdr.read(), + afterCar = await tok.read(); - if (Token.is(after, '.')) { + if (Token.is(afterCar, '.')) { + const afterDot = await tok.read(); + if (afterDot === LIST_CLOSE_PAREN) { + throw new Error(`Nothing after . in list`); + } else { + tok.unread(afterDot); + } const cons = new Cons(car, await rdr.read()); if (await tok.read() === LIST_CLOSE_PAREN) { return new Values(cons); @@ -284,9 +290,9 @@ const readList = async stream => { } } - if (after === LIST_CLOSE_PAREN) return new Values(new Cons(car)); + if (afterCar === LIST_CLOSE_PAREN) return new Values(new Cons(car)); - tok.unread(after); + tok.unread(afterCar); return new Values(new Cons(car, (await readList(stream))[0])); }