X-Git-Url: http://wien.tomnetworks.com/gitweb/?a=blobdiff_plain;f=TestGen.hs;h=69786e995f988129d64905da5aace54b351d769b;hb=786dff755133ccc2e44445d9c47baa62010e87e4;hp=5bb8daad810cd28c777405cfe49b83387f2ffc9b;hpb=69b71af830218d6e1e20fae3cc42fdbaca1816ee;p=hs-java.git diff --git a/TestGen.hs b/TestGen.hs index 5bb8daa..69786e9 100644 --- a/TestGen.hs +++ b/TestGen.hs @@ -10,17 +10,18 @@ import JVM.Builder import qualified Java.Lang import qualified Java.IO -hello :: NameType Method -hello = NameType "hello" $ MethodSignature [IntType] ReturnsVoid - test :: Generate () test = do newMethod [ACC_PUBLIC] "" [] ReturnsVoid $ do + setStackSize 1 + aload_ I0 invokeSpecial Java.Lang.object Java.Lang.objectInit i0 RETURN hello <- newMethod [ACC_PUBLIC, ACC_STATIC] "hello" [IntType] ReturnsVoid $ do + setStackSize 8 + getStaticField Java.Lang.system Java.IO.out loadString "Здравствуй, мир!" invokeVirtual Java.IO.printStream Java.IO.println @@ -37,13 +38,16 @@ test = do pop i0 RETURN - newMethod [ACC_PUBLIC, ACC_STATIC] "main" [Array Nothing Java.Lang.stringClass] ReturnsVoid $ do + newMethod [ACC_PUBLIC, ACC_STATIC] "main" [arrayOf Java.Lang.stringClass] ReturnsVoid $ do + setStackSize 1 + iconst_5 invokeStatic "Test" hello i0 RETURN return () +testClass :: Class Direct testClass = generate "Test" test main = do