1 {-# LANGUAGE OverloadedStrings #-}
3 import qualified Data.ByteString.Lazy as B
11 import qualified Java.Lang
12 import qualified Java.IO
19 helloJava <- getClassMethod "./Hello" "hello"
21 newMethod [ACC_PUBLIC] "<init>" [] ReturnsVoid $ do
25 invokeSpecial Java.Lang.object Java.Lang.objectInit
28 hello <- newMethod [ACC_PUBLIC, ACC_STATIC] "hello" [IntType] ReturnsVoid $ do
31 getStaticField Java.Lang.system Java.IO.out
32 loadString "Здравствуй, мир!"
33 invokeVirtual Java.IO.printStream Java.IO.println
34 getStaticField Java.Lang.system Java.IO.out
35 loadString "Argument: %d\n"
37 allocArray Java.Lang.object
41 invokeStatic Java.Lang.integer Java.Lang.valueOfInteger
43 invokeVirtual Java.IO.printStream Java.IO.printf
44 invokeStatic "Hello" helloJava
48 newMethod [ACC_PUBLIC, ACC_STATIC] "main" [arrayOf Java.Lang.stringClass] ReturnsVoid $ do
52 invokeStatic "Test" hello
58 testClass <- generate [] "Test" test
59 B.writeFile "Test.class" (encodeClass testClass)