aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/target/jvm/modifier.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/target/jvm/modifier.lux')
-rw-r--r--stdlib/source/lux/target/jvm/modifier.lux87
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)))))))