(.module: [library [lux #* [data [text ["%" format (#+ format)]]] [target [jvm ["$t" type]]] [tool [compiler [language [lux [generation (#+ Context)] [program (#+ Program)]]]]]]] [luxc [lang [host ["_" jvm ["$d" def] ["$i" inst]]] [translation ["." jvm ["." runtime]]]]]) (def: ^Object ($t.class "java.lang.Object" (list))) (def: .public (program artifact_name context programI) (-> (-> Context Text) (Program _.Inst _.Definition)) (let [nilI runtime.noneI num_inputsI (|>> ($i.ALOAD 0) $i.ARRAYLENGTH) --I (|>> ($i.int +1) $i.ISUB) headI (|>> $i.DUP ($i.ALOAD 0) $i.SWAP $i.AALOAD $i.SWAP $i.DUP_X2 $i.POP) pairI (|>> ($i.int +2) ($i.ANEWARRAY ..^Object) $i.DUP_X1 $i.SWAP ($i.int +0) $i.SWAP $i.AASTORE $i.DUP_X1 $i.SWAP ($i.int +1) $i.SWAP $i.AASTORE) consI (|>> ($i.int +1) ($i.string "") $i.DUP2_X1 $i.POP2 runtime.variantI) prepare_input_listI (<| $i.with_label (function (_ @loop)) $i.with_label (function (_ @end)) (|>> nilI num_inputsI ($i.label @loop) --I $i.DUP ($i.IFLT @end) headI pairI consI $i.SWAP ($i.GOTO @loop) ($i.label @end) $i.POP)) feed_inputsI ($i.INVOKEVIRTUAL jvm.$Function runtime.apply_method (runtime.apply_signature 1)) run_ioI (|>> ($i.CHECKCAST jvm.$Function) $i.NULL ($i.INVOKEVIRTUAL jvm.$Function runtime.apply_method (runtime.apply_signature 1))) main_type ($t.method [(list) (list ($t.array ($t.class "java.lang.String" (list)))) $t.void (list)]) class (artifact_name context)] [class ($d.class #_.V1_6 #_.Public _.finalC class (list) ..^Object (list) (|>> ($d.method #_.Public _.staticM "main" main_type (|>> programI prepare_input_listI feed_inputsI run_ioI $i.RETURN))))]))