-- These bindings are highly experimental and subject to change
-- without notice. You've been warned.
--
-module Edu.Berkeley.Sbp.Haskell.SBP(
+-- Warning: this is no longer maintained. It stopped working in mid-2009.
+--
+module Edu_Berkeley_Sbp_Haskell_SBP(
Tree(Tree),Location(Location),Region(Region),parseFile,prettyPrintTree,coalesceFlatHeadlessNodes)
where
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;
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
------------------------------------------------------------------------------
#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
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 []