diff options
Diffstat (limited to 'stdlib/source/lux/target/jvm/modifier.lux')
-rw-r--r-- | stdlib/source/lux/target/jvm/modifier.lux | 87 |
1 files changed, 0 insertions, 87 deletions
diff --git a/stdlib/source/lux/target/jvm/modifier.lux b/stdlib/source/lux/target/jvm/modifier.lux deleted file mode 100644 index 80e353f33..000000000 --- a/stdlib/source/lux/target/jvm/modifier.lux +++ /dev/null @@ -1,87 +0,0 @@ -(.module: - [lux #* - [abstract - ["." equivalence (#+ Equivalence)] - ["." monoid (#+ Monoid)]] - [control - ["." try] - ["<>" parser - ["<c>" code]]] - [data - [format - [".F" binary (#+ Writer)]]] - [macro (#+ with_gensyms) - [syntax (#+ syntax:)] - ["." code]] - [math - ["." number (#+ hex) - ["." i64]]] - [type - abstract]] - ["." // #_ - [encoding - ["#." unsigned]]]) - -(abstract: #export (Modifier of) - //unsigned.U2 - - (def: #export code - (-> (Modifier Any) //unsigned.U2) - (|>> :representation)) - - (implementation: #export equivalence - (All [of] (Equivalence (Modifier of))) - - (def: (= reference sample) - (\ //unsigned.equivalence = - (:representation reference) - (:representation sample)))) - - (template: (!wrap value) - (|> value - //unsigned.u2 - try.assume - :abstraction)) - - (template: (!unwrap value) - (|> value - :representation - //unsigned.value)) - - (def: #export (has? sub super) - (All [of] (-> (Modifier of) (Modifier of) Bit)) - (let [sub (!unwrap sub)] - (|> (!unwrap super) - (i64.and sub) - (\ i64.equivalence = sub)))) - - (implementation: #export monoid - (All [of] (Monoid (Modifier of))) - - (def: identity - (!wrap (hex "0000"))) - - (def: (compose left right) - (!wrap (i64.or (!unwrap left) (!unwrap right))))) - - (def: #export empty - Modifier - (\ ..monoid identity)) - - (def: #export writer - (All [of] (Writer (Modifier of))) - (|>> :representation //unsigned.writer/2)) - - (def: modifier - (-> Nat Modifier) - (|>> !wrap)) - ) - -(syntax: #export (modifiers: ofT {options (<>.many <c>.any)}) - (with_gensyms [g!modifier g!code] - (wrap (list (` (template [(~ g!code) (~ g!modifier)] - [(def: (~' #export) (~ g!modifier) - (..Modifier (~ ofT)) - ((~! ..modifier) ((~! number.hex) (~ g!code))))] - - (~+ options))))))) |