Add prelude and while macro

This commit introduces a new prelude file that defines the `while` macro
and registers it during environment bootstrapping. The `again` macro has
been updated to accept multiple arguments for its recursive call, and
several examples have been adjusted to reflect this change.
Additionally, the `MacroRegistry` in the compiler is now cloneable and
can be moved out of the `MacroExpander`.
This commit is contained in:
Michael Schimmel
2026-02-28 12:41:19 +01:00
parent 83324a1892
commit 7126668934
8 changed files with 56 additions and 26 deletions
+9
View File
@@ -0,0 +1,9 @@
;; Myc Prelude
;; This file is evaluated during Environment bootstrapping.
;; It contains standard macros and functions.
(macro while [cond body]
`((fn [] (if ~cond
(do ~body (again))
)))
)