From b62fa6d0743711cec5c99c00c82a787ee9e8a783 Mon Sep 17 00:00:00 2001 From: Scott Richmond Date: Wed, 18 May 2022 19:35:30 -0400 Subject: [PATCH] Fix off-by-paren loop tup bug --- src/ludus/parser.clj | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/ludus/parser.clj b/src/ludus/parser.clj index e67aea1..78b8fdb 100644 --- a/src/ludus/parser.clj +++ b/src/ludus/parser.clj @@ -624,7 +624,7 @@ (defn- parse-loop [parser] (let [next (advance parser)] (if (= ::token/lparen (token-type next)) - (let [loop-tup (parse-tuple (advance next)) + (let [loop-tup (parse-tuple next) loop-header (expect* #{::token/with} "Expected with" loop-tup)] (if (:success loop-header) (let [clauses (:parser loop-header)] @@ -647,7 +647,7 @@ (defn- parse-recur [parser] (let [next (advance parser)] (if (= ::token/lparen (token-type next)) - (let [tuple (parse-tuple (advance next))] + (let [tuple (parse-tuple next)] (assoc tuple ::ast {::ast/type ::ast/recur :tuple (::ast tuple)}) ) @@ -656,7 +656,6 @@ ) ) - (defn- parse-cond-clause [parser] (let [expr (if (contains? #{::token/else ::token/placeholder} (token-type parser)) @@ -878,7 +877,7 @@ (parser) (parse-script))) -(comment +(do (def pp pp/pprint) (def source "loop (10) with { (0) -> print (:boom)