diff options
Diffstat (limited to '')
-rw-r--r-- | stdlib/source/library/lux/target/jvm/class.lux | 87 |
1 files changed, 45 insertions, 42 deletions
diff --git a/stdlib/source/library/lux/target/jvm/class.lux b/stdlib/source/library/lux/target/jvm/class.lux index 1ba0ae62d..7a342dd54 100644 --- a/stdlib/source/library/lux/target/jvm/class.lux +++ b/stdlib/source/library/lux/target/jvm/class.lux @@ -1,31 +1,33 @@ (.using - [library - [lux {"-" public private} - [abstract - [equivalence {"+" Equivalence}] - ["[0]" monad {"+" do}]] - [control - ["[0]" state] - ["[0]" try {"+" Try}]] - [data - ["[0]" product] - [format - ["[0]F" binary {"+" Writer} ("[1]#[0]" monoid)]] - [collection - ["[0]" sequence {"+" Sequence}]]]]] - ["[0]" // "_" - ["[1][0]" modifier {"+" Modifier modifiers:}] - ["[1][0]" version {"+" Version Minor Major}] - ["[1][0]" magic {"+" Magic}] - ["[1][0]" index {"+" Index}] - ["[1][0]" attribute {"+" Attribute}] - ["[1][0]" field {"+" Field}] - ["[1][0]" method {"+" Method}] - [encoding - ["[1][0]" unsigned] - ["[1][0]" name {"+" Internal}]] - ["[1][0]" constant {"+" Constant} - ["[1]/[0]" pool {"+" Pool Resource}]]]) + [library + [lux {"-" Type public private} + [abstract + [equivalence {"+" Equivalence}] + ["[0]" monad {"+" do}]] + [control + ["[0]" state] + ["[0]" try {"+" Try}]] + [data + ["[0]" product] + [format + ["[0]F" binary {"+" Writer} ("[1]#[0]" monoid)]] + [collection + ["[0]" sequence {"+" Sequence}]]]]] + ["[0]" // "_" + ["[1][0]" modifier {"+" Modifier modifiers:}] + ["[1][0]" version {"+" Version Minor Major}] + ["[1][0]" magic {"+" Magic}] + ["[1][0]" index {"+" Index}] + ["[1][0]" attribute {"+" Attribute}] + ["[1][0]" field {"+" Field}] + ["[1][0]" method {"+" Method}] + [encoding + ["[1][0]" unsigned] + ["[1][0]" name {"+" Internal}]] + ["[1][0]" type {"+" Type} + [category {"+" Declaration}]] + ["[1][0]" constant {"+" Constant} + ["[2][0]" pool {"+" Pool Resource}]]]) (type: .public Class (Rec Class @@ -59,7 +61,7 @@ //unsigned.equivalence //unsigned.equivalence //unsigned.equivalence - //constant/pool.equivalence + //pool.equivalence //modifier.equivalence //index.equivalence //index.equivalence @@ -71,35 +73,36 @@ (def: (install_classes this super interfaces) (-> Internal Internal (List Internal) (Resource [(Index //constant.Class) (Index //constant.Class) (Sequence (Index //constant.Class))])) - (do [! //constant/pool.monad] - [@this (//constant/pool.class this) - @super (//constant/pool.class super) + (do [! //pool.monad] + [@this (//pool.class this) + @super (//pool.class super) @interfaces (: (Resource (Sequence (Index //constant.Class))) (monad.mix ! (function (_ interface @interfaces) (do ! - [@interface (//constant/pool.class interface)] + [@interface (//pool.class interface)] (in (sequence.suffix @interface @interfaces)))) sequence.empty interfaces))] (in [@this @super @interfaces]))) (def: .public (class version modifier - this super interfaces + this type super interfaces fields methods attributes) (-> Major (Modifier Class) - Internal Internal (List Internal) + Internal (Type Declaration) Internal (List Internal) (List (Resource Field)) (List (Resource Method)) (Sequence Attribute) (Try Class)) (do try.monad - [[pool [@this @super @interfaces] =fields =methods] - (<| (state.result' //constant/pool.empty) - (do //constant/pool.monad + [[pool [@this @super @interfaces] =fields =methods @signature] + (<| (state.result' //pool.empty) + (do [! //pool.monad] [classes (install_classes this super interfaces) - =fields (monad.all //constant/pool.monad fields) - =methods (monad.all //constant/pool.monad methods)] - (in [classes =fields =methods])))] + =fields (monad.all ! fields) + =methods (monad.all ! methods) + @signature (//attribute.signature type)] + (in [classes =fields =methods @signature])))] (in [#magic //magic.code #minor_version //version.default_minor #major_version version @@ -110,7 +113,7 @@ #interfaces @interfaces #fields (sequence.of_list =fields) #methods (sequence.of_list =methods) - #attributes attributes]))) + #attributes (sequence.suffix @signature attributes)]))) (def: .public (writer class) (Writer Class) @@ -121,7 +124,7 @@ [//magic.writer #magic] [//version.writer #minor_version] [//version.writer #major_version] - [//constant/pool.writer #constant_pool] + [//pool.writer #constant_pool] [//modifier.writer #modifier] [//index.writer #this] [//index.writer #super])) |