diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/lux/target/jvm/bytecode/environment.lux | 21 |
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))) |