From d99a454e36ed0ac3c703dfc1f13aad8fcfb9d2e8 Mon Sep 17 00:00:00 2001 From: Scott Richmond Date: Thu, 30 Nov 2023 15:03:51 -0500 Subject: [PATCH] Work on fn regression --- src/ludus/grammar.cljc | 6 +++--- src/ludus/interpreter.cljc | 5 +++-- src/ludus/prelude.cljc | 5 ----- src/ludus/repl.clj | 4 ++-- 4 files changed, 8 insertions(+), 12 deletions(-) diff --git a/src/ludus/grammar.cljc b/src/ludus/grammar.cljc index eb083b3..081af5a 100644 --- a/src/ludus/grammar.cljc +++ b/src/ludus/grammar.cljc @@ -10,7 +10,7 @@ [ludus.scanner :as s] )) -(declare expression pattern binding non-binding simple) +(declare expression pattern binding-expr non-binding simple) (defp separator choice [:comma :newline :break]) @@ -234,11 +234,11 @@ (defp compound flat choice [match loop-expr if-expr when-expr do-expr block]) -(defp binding flat choice [fn-named fn-compound let-expr ref-expr]) +(defp binding-expr flat choice [fn-named let-expr ref-expr]) (defp non-binding flat choice [simple compound]) -(defp expression flat choice [binding non-binding]) +(defp expression flat choice [binding-expr non-binding]) (defp test-expr group order-1 [(quiet :test) :string non-binding]) diff --git a/src/ludus/interpreter.cljc b/src/ludus/interpreter.cljc index 5c006c8..cd8157c 100644 --- a/src/ludus/interpreter.cljc +++ b/src/ludus/interpreter.cljc @@ -797,7 +797,8 @@ :when-expr (interpret-cond ast ctx) - :fn-expr (interpret-fn ast ctx) + :fn-named (interpret-fn ast ctx) + :lambda (interpret-fn ast ctx) :do-expr (interpret-do ast ctx) @@ -931,7 +932,7 @@ (do (def source " - two + :foo ") (def tokens (-> source scanner/scan :tokens)) diff --git a/src/ludus/prelude.cljc b/src/ludus/prelude.cljc index bf74dee..1fbfb2d 100644 --- a/src/ludus/prelude.cljc +++ b/src/ludus/prelude.cljc @@ -1,11 +1,6 @@ (ns ludus.prelude) (def prelude " -let one = 1 -let two = :two - ns prelude { - one - two } ") \ No newline at end of file diff --git a/src/ludus/repl.clj b/src/ludus/repl.clj index 7069344..e7029be 100644 --- a/src/ludus/repl.clj +++ b/src/ludus/repl.clj @@ -4,7 +4,7 @@ [ludus.parser :as p] [ludus.grammar :as g] [ludus.interpreter :as interpreter] - [ludus.prelude :as prelude] + [ludus.base :as base] [ludus.show :as show] [ludus.data :as data] ;[ludus.process :as process] @@ -22,7 +22,7 @@ (println "\nGoodbye!") (System/exit 0)) -(def base-ctx (merge prelude/prelude ;process/process +(def base-ctx (merge base/base ;process/process {::repl true "repl" {::data/struct true