(.module: [lux #* [abstract ["." equivalence (#+ Equivalence)]] [control ["<>" parser ("#@." functor) ["<2>" binary (#+ Parser)]]] [data [format [".F" binary (#+ Writer)]]]] ["." // #_ ["//#" /// #_ [constant (#+ Class)] ["#." index (#+ Index)] [code ["#." label (#+ Label)]] [encoding ["#." unsigned (#+ U2)]]]]) (type: #export Exception {#start-pc Label #end-pc Label #handler-pc Label #catch-type (Index Class)}) (def: #export equivalence (Equivalence Exception) ($_ equivalence.product ////label.equivalence ////label.equivalence ////label.equivalence ////index.equivalence )) ## https://docs.oracle.com/javase/specs/jvms/se8/html/jvms-4.html#jvms-4.7.3 (def: #export length Nat ($_ n/+ ## u2 start_pc; ////unsigned.u2-bytes ## u2 end_pc; ////unsigned.u2-bytes ## u2 handler_pc; ////unsigned.u2-bytes ## u2 catch_type; ////unsigned.u2-bytes )) (def: #export parser (Parser Exception) ($_ <>.and ////label.parser ////label.parser ////label.parser ////index.parser )) (def: #export writer (Writer Exception) ($_ binaryF.and ////label.writer ////label.writer ////label.writer ////index.writer ))