git » jacl.git » commit c9d5759

Add error msg for when nothing appears after dot with pair syntax

author Alan Dipert
2019-08-22 07:26:53 UTC
committer Alan Dipert
2019-08-22 07:26:53 UTC
parent fab91a560a0744745447c55026ccd0ca89b055ed

Add error msg for when nothing appears after dot with pair syntax

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]));
 }