aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/lux/target/jvm/class.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/lux/target/jvm/class.lux')
-rw-r--r--stdlib/source/lux/target/jvm/class.lux133
1 files changed, 0 insertions, 133 deletions
diff --git a/stdlib/source/lux/target/jvm/class.lux b/stdlib/source/lux/target/jvm/class.lux
deleted file mode 100644
index ad90c3db5..000000000
--- a/stdlib/source/lux/target/jvm/class.lux
+++ /dev/null
@@ -1,133 +0,0 @@
- (.module:
- [lux #*
- [abstract
- [equivalence (#+ Equivalence)]
- ["." monad (#+ do)]]
- [control
- ["." state]
- ["." try (#+ Try)]]
- [data
- ["." product]
- [format
- [".F" binary (#+ Writer) ("#\." monoid)]]
- [collection
- ["." row (#+ Row)]]]]
- ["." // #_
- ["#." modifier (#+ Modifier modifiers:)]
- ["#." version (#+ Version Minor Major)]
- ["#." magic (#+ Magic)]
- ["#." index (#+ Index)]
- ["#." attribute (#+ Attribute)]
- ["#." field (#+ Field)]
- ["#." method (#+ Method)]
- [encoding
- ["#." unsigned]
- ["#." name (#+ Internal)]]
- ["#." constant (#+ Constant)
- ["#/." pool (#+ Pool Resource)]]])
-
-(type: #export #rec Class
- {#magic Magic
- #minor_version Minor
- #major_version Major
- #constant_pool Pool
- #modifier (Modifier Class)
- #this (Index //constant.Class)
- #super (Index //constant.Class)
- #interfaces (Row (Index //constant.Class))
- #fields (Row Field)
- #methods (Row Method)
- #attributes (Row Attribute)})
-
-(modifiers: Class
- ["0001" public]
- ["0010" final]
- ["0020" super]
- ["0200" interface]
- ["0400" abstract]
- ["1000" synthetic]
- ["2000" annotation]
- ["4000" enum]
- )
-
-(def: #export equivalence
- (Equivalence Class)
- ($_ product.equivalence
- //unsigned.equivalence
- //unsigned.equivalence
- //unsigned.equivalence
- //constant/pool.equivalence
- //modifier.equivalence
- //index.equivalence
- //index.equivalence
- (row.equivalence //index.equivalence)
- (row.equivalence //field.equivalence)
- (row.equivalence //method.equivalence)
- (row.equivalence //attribute.equivalence)))
-
-(def: (install_classes this super interfaces)
- (-> Internal Internal (List Internal)
- (Resource [(Index //constant.Class) (Index //constant.Class) (Row (Index //constant.Class))]))
- (do {! //constant/pool.monad}
- [@this (//constant/pool.class this)
- @super (//constant/pool.class super)
- @interfaces (: (Resource (Row (Index //constant.Class)))
- (monad.fold ! (function (_ interface @interfaces)
- (do !
- [@interface (//constant/pool.class interface)]
- (wrap (row.add @interface @interfaces))))
- row.empty
- interfaces))]
- (wrap [@this @super @interfaces])))
-
-(def: #export (class version modifier
- this super interfaces
- fields methods attributes)
- (-> Major (Modifier Class)
- Internal Internal (List Internal)
- (List (Resource Field))
- (List (Resource Method))
- (Row Attribute)
- (Try Class))
- (do try.monad
- [[pool [@this @super @interfaces] =fields =methods]
- (<| (state.run' //constant/pool.empty)
- (do //constant/pool.monad
- [classes (install_classes this super interfaces)
- =fields (monad.seq //constant/pool.monad fields)
- =methods (monad.seq //constant/pool.monad methods)]
- (wrap [classes =fields =methods])))]
- (wrap {#magic //magic.code
- #minor_version //version.default_minor
- #major_version version
- #constant_pool pool
- #modifier modifier
- #this @this
- #super @super
- #interfaces @interfaces
- #fields (row.from_list =fields)
- #methods (row.from_list =methods)
- #attributes attributes})))
-
-(def: #export (writer class)
- (Writer Class)
- (`` ($_ binaryF\compose
- (~~ (template [<writer> <slot>]
- [(<writer> (get@ <slot> class))]
-
- [//magic.writer #magic]
- [//version.writer #minor_version]
- [//version.writer #major_version]
- [//constant/pool.writer #constant_pool]
- [//modifier.writer #modifier]
- [//index.writer #this]
- [//index.writer #super]))
- (~~ (template [<writer> <slot>]
- [((binaryF.row/16 <writer>) (get@ <slot> class))]
-
- [//index.writer #interfaces]
- [//field.writer #fields]
- [//method.writer #methods]
- [//attribute.writer #attributes]
- ))
- )))