From 4da846d8d75e850e3447697da47308ef425074f6 Mon Sep 17 00:00:00 2001 From: Scott Richmond Date: Tue, 4 Jun 2024 13:28:20 -0400 Subject: [PATCH] doc! works! --- janet/base.janet | 15 ++++++++++++--- janet/interpreter.janet | 8 +++++--- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/janet/base.janet b/janet/base.janet index f3b5eec..6829484 100644 --- a/janet/base.janet +++ b/janet/base.janet @@ -80,7 +80,13 @@ :string (get-in x [:token :lexeme]) (error (string "cannot show pattern of unknown type " (x :type))))) -(defn- docstring [fnn] :todo) +(defn doc! [fnn] + (def {:name name :doc doc :body clauses} fnn) + (print "doccing " name) + (def patterns (map (fn [x] (-> x first show-patt)) clauses)) + (print name) + (print (string/join patterns " ")) + (print doc)) (defn- conj-set [sett value] (def new (merge sett)) @@ -125,6 +131,9 @@ :set (-> x (dissoc :^type) keys) @[x])) +(defn print! [& args] + (print ;(map show args))) + (defn prn [x] (pp x) x) @@ -140,7 +149,7 @@ (defn set! [x] (set (x :value) x)) (def ctx { - "print" print + "print!" print! "prn" prn "eq" deep= "bool" bool @@ -161,6 +170,7 @@ "type" ludus/type "stringify" stringify "show" show + "doc!" doc! "concat" concat "conj" conj "disj" disj @@ -194,7 +204,6 @@ Used in current prelude but not yet in base: into/2 -doc to_dict ) diff --git a/janet/interpreter.janet b/janet/interpreter.janet index eaad40d..53fe9f3 100644 --- a/janet/interpreter.janet +++ b/janet/interpreter.janet @@ -554,7 +554,7 @@ # (def cleaned (get-in parsed [:ast :data 1])) # (pp cleaned) # (interpret (parsed :ast) @{:^parent b/ctx}) - (try (interpret (parsed :ast) @{}) + (try (interpret (parsed :ast) @{:^parent b/ctx}) ([e] (print "Ludus panicked!: " (if (struct? e) (error (e :msg)) (error e))))) ) @@ -562,12 +562,14 @@ (do (set source ` fn foo { - "a foo, a bar" + "a doc, another doc" () -> :foo (_) -> :bar } + +doc! (foo) `) (def result (run)) -# (b/show result) +(b/show result) )