From d3b22e743f1070bc4c465ee66b39ccc12df72883 Mon Sep 17 00:00:00 2001 From: adam Date: Sun, 11 Jan 2009 00:15:47 -0500 Subject: [PATCH] a few tweaks to the Haskell interface darcs-hash:20090111051547-5007d-7f5b2f70c16b55ca68cb36493d33567145eefeff.gz --- src/edu/berkeley/sbp/haskell/SBP.lhs | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/edu/berkeley/sbp/haskell/SBP.lhs b/src/edu/berkeley/sbp/haskell/SBP.lhs index c1d3efb..4cc3d26 100644 --- a/src/edu/berkeley/sbp/haskell/SBP.lhs +++ b/src/edu/berkeley/sbp/haskell/SBP.lhs @@ -17,6 +17,7 @@ type name = JObject CONCAT(name,_); \ foreign import jvm s CONCAT(_,name) :: JClass; \ instance JType_ CONCAT(name,_) where jClass_ _ = CONCAT(_,name); #else +{- import Header_Java; import Class_HaskellHelper; import Class_java_lang_Object; @@ -32,8 +33,16 @@ import JavaText; import JavaTypes; import Data.Int; import Invocation; +-} +import Foreign.JavaVM.Lib.Class_java_lang_System; +import Foreign.JavaVM.Lib.Class_java_lang_String; +import TestCallback_JVM; +import Foreign.JavaVM; +import Platform.JavaVM; +import Data.Witness; +import Control.Concurrent; +import System.IO; #endif ---import Text.PrettyPrint.HughesPJ import Text.PrettyPrint.Leijen data Location = Location Int Int @@ -119,17 +128,17 @@ parseFile f = do f' <- packJString f ------------------------------------------------------------------------------ #else -- Why do I need this? - instance SubJavaClassMarker - Header_edu_berkeley_sbp_Tree.Class_Jedu_berkeley_sbp_Tree - Header_HaskellHelper.Class_Jedu_berkeley_sbp_Tree +instance SubJavaClassMarker + Header_edu_berkeley_sbp_Tree.Class_Jedu_berkeley_sbp_Tree + Header_HaskellHelper.Class_Jedu_berkeley_sbp_Tree - parseFile :: +parseFile :: [String] -> -- class path String -> -- grammar *.g file String -> -- file to be parsed IO Tree - parseFile classPath grammarFile inputFile = +parseFile classPath grammarFile inputFile = runJVM classPath ((do class_JHaskellHelper s1 <- new_JString_ArrayJchar $ toJavaString grammarFile @@ -139,12 +148,15 @@ parseFile f = do f' <- packJString f return t ) :: JVM Tree) - haskifyTree t = +haskifyTree t = ((do class_JHaskellHelper class_JTree head <- getHead_JTree t () isNull <- getIsNothing head - str <- if isNull then (return "") else (toString_JObject ((castTLRef head) :: Jjava_lang_Object) () >>= getStringUTF >>= \x -> return (showUTF8 x)) + str <- if isNull + then (return "") + else (toString_JObject ((castTLRef head) :: Jjava_lang_Object) () + >>= getStringUTF >>= \x -> return (showUTF8 x)) numChildren <- size_JTree t() children <- if numChildren == 0 then do return [] -- 1.7.10.4