summaryrefslogtreecommitdiff
path: root/src/modules/utils
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2025-01-12 15:10:23 -0700
committerbd <bdunahu@operationnull.com>2025-01-12 15:10:23 -0700
commit000b28c88bbfd1fde94b5e01ce2766230077e013 (patch)
tree2da470f7fe73f4d1e6ba3cbf25db9c89aa2ff5eb /src/modules/utils
parent2bc7c77b7f63b1df0340112db6272dc9a78139c1 (diff)
Expansion of complex expressions into set of instructions
Diffstat (limited to 'src/modules/utils')
-rw-r--r--src/modules/utils/t-factory.scm24
1 files changed, 24 insertions, 0 deletions
diff --git a/src/modules/utils/t-factory.scm b/src/modules/utils/t-factory.scm
new file mode 100644
index 0000000..cad7c24
--- /dev/null
+++ b/src/modules/utils/t-factory.scm
@@ -0,0 +1,24 @@
+(define-module (modules utils t-factory)
+ #:use-module (srfi srfi-9)
+ #:export (temporary?
+ temporary-name
+ temporary-register
+ set-temporary-register!
+ make-temporary
+ ))
+
+
+(define-record-type <temporary>
+ (make--temporary name register)
+ temporary?
+ (name temporary-name)
+ (register temporary-register set-temporary-register!))
+
+(define make-temporary)
+(let ((count 100))
+ (set! make-temporary
+ (lambda ()
+ (set! count (1+ count))
+ (make--temporary (string->symbol
+ (format #f "t.~a" count))
+ #f))))