aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/target/jvm/bytecode/environment.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/lux/target/jvm/bytecode/environment.lux21
1 files changed, 15 insertions, 6 deletions
diff --git a/stdlib/source/lux/target/jvm/bytecode/environment.lux b/stdlib/source/lux/target/jvm/bytecode/environment.lux
index 70db71c47..51927b96e 100644
--- a/stdlib/source/lux/target/jvm/bytecode/environment.lux
+++ b/stdlib/source/lux/target/jvm/bytecode/environment.lux
@@ -1,5 +1,5 @@
(.module:
- [lux #*
+ [lux (#- Type static)
[abstract
[monad (#+ do)]
[monoid (#+ Monoid)]]
@@ -11,16 +11,25 @@
["/." registry (#+ Registry)]]
[///
[encoding
- [unsigned (#+ U2)]]]])
+ [unsigned (#+ U2)]]
+ [type (#+ Type)
+ [category (#+ Method)]]]])
(type: #export Environment
{#limit Limit
#stack Stack})
-(def: #export start
- Environment
- {#limit /limit.start
- #stack /stack.empty})
+(template [<name> <limit>]
+ [(def: #export (<name> type)
+ (-> (Type Method) (Try Environment))
+ (do try.monad
+ [limit (<limit> type)]
+ (wrap {#limit limit
+ #stack /stack.empty})))]
+
+ [static /limit.static]
+ [virtual /limit.virtual]
+ )
(type: #export Condition
(-> Environment (Try Environment)))