diff --git a/src/ludus/parser.clj b/src/ludus/parser.clj index f8d7857..a510dad 100644 --- a/src/ludus/parser.clj +++ b/src/ludus/parser.clj @@ -446,6 +446,10 @@ (parse-then (accept ::token/newline ast)) )) +(defn- parse-match-clause [parser]) + +(defn- parse-match [parser]) + (defn- parse-expr ([parser] (parse-expr parser sync-on)) ([parser sync-on] (let [token (current parser)] @@ -482,6 +486,10 @@ ::token/let (parse-let parser) ::token/if (parse-if parser) + + ::token/match (parse-match parser) + + ::token/comment (advance parser) ::token/error (panic parser (:message token) sync-on) @@ -504,7 +512,11 @@ (do (def pp pp/pprint) - (def source "#{:a :b, :c :d}") + (def source " + (1 + 2 + &three + 3)") (def lexed (scanner/scan source)) (def tokens (:tokens lexed)) (def p (parser tokens)) diff --git a/src/ludus/scanner.clj b/src/ludus/scanner.clj index 6074297..48c5967 100644 --- a/src/ludus/scanner.clj +++ b/src/ludus/scanner.clj @@ -208,9 +208,10 @@ comm (str char)] (let [char (current-char scanner)] (if (= \newline char) - (if (s/starts-with? comm "&&&") - (add-token (update scanner ::line inc) ::token/docstring) - (add-token (update scanner ::line inc) ::token/comment)) + (update scanner ::line inc) + ;;(if (s/starts-with? comm "&&&") + ;;(add-token (update scanner ::line inc) ::token/docstring) + ;;(add-token (update scanner ::line inc) ::token/comment)) (recur (advance scanner) (str comm char)))))) (defn- scan-token [scanner]