summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoraarne <unknown>2004-05-28 12:18:28 +0000
committeraarne <unknown>2004-05-28 12:18:28 +0000
commitb103e87bc47be44d82438412a3c710857b4fefaf (patch)
tree474accba02db10f0a2d18dcb4bcd8e5bab059e10 /src
parent6dcf9f1cd463262bd3015b93afb615c487f0b349 (diff)
external translator
Diffstat (limited to 'src')
-rw-r--r--src/GF/API.hs22
-rw-r--r--src/GF/API/BatchTranslate.hs31
-rw-r--r--src/Today.hs2
3 files changed, 44 insertions, 11 deletions
diff --git a/src/GF/API.hs b/src/GF/API.hs
index d92f85e26..a9f836422 100644
--- a/src/GF/API.hs
+++ b/src/GF/API.hs
@@ -5,10 +5,11 @@ import qualified AbsGFC as A
import qualified Rename as R
import GetTree
import GFC
+--- import qualified Values as V
import Values
-----import GetGrammar
------import Compile
+import Compile
import IOGrammar
import Linear
import Parsing
@@ -60,15 +61,14 @@ import System (system)
type GFGrammar = StateGrammar
type GFCat = CFCat
type Ident = I.Ident
+--- type Tree = V.Tree
-- these are enough for many simple applications
-{- -----
file2grammar :: FilePath -> IO GFGrammar
-file2grammar = do
- egr <- appIOE $ optFile2grammar (iOpts [beSilent])
- err putStrLn return egr
--}
+file2grammar file = do
+ egr <- appIOE $ optFile2grammar (iOpts [beSilent]) file
+ err (\s -> putStrLn s >> return emptyStateGrammar) return egr
linearize :: GFGrammar -> Tree -> String
linearize sgr = err id id . optLinearizeTree opts sgr where
@@ -118,17 +118,19 @@ transformGrammarFile opts file = do
prIdent :: Ident -> String
prIdent = prt
+string2GFCat :: String -> String -> GFCat
+string2GFCat = string2CFCat
+
-- then stg for customizable and internal use
-{- -----
optFile2grammar :: Options -> FilePath -> IOE GFGrammar
optFile2grammar os f = do
- gr <- ioeErr $ compileModule os f
- return $ grammar2stateGrammar gr
+ gr <- compileModule os emptyShellState f
+ ioeErr $ grammar2stateGrammar os (fst gr)
optFile2grammarE :: Options -> FilePath -> IOE GFGrammar
optFile2grammarE = optFile2grammar
--}
+
string2treeInState :: GFGrammar -> String -> State -> Err Tree
string2treeInState gr s st = do
diff --git a/src/GF/API/BatchTranslate.hs b/src/GF/API/BatchTranslate.hs
new file mode 100644
index 000000000..43c58670f
--- /dev/null
+++ b/src/GF/API/BatchTranslate.hs
@@ -0,0 +1,31 @@
+module BatchTranslate where
+
+import API
+import GetMyTree (file2tree)
+
+-- translate OCL, etc, files in batch mode
+
+translate :: FilePath -> FilePath -> IO ()
+translate fgr txt = do
+ gr <- file2grammar fgr
+ s <- file2tree txt
+ putStrLn $ linearize gr s
+
+
+{- headers for model-specific grammars:
+
+abstract userDefined = oclLibrary ** {
+
+--# -path=.:abstract:prelude:English:ExtraEng
+concrete userDefinedEng of userDefined = oclLibraryEng ** open externalOperEng in {
+
+--# -path=.:abstract:prelude:German:ExtraGer
+concrete userDefinedGer of userDefined = oclLibraryGer ** open
+externalOperGer in {
+
+
+It seems we should add open
+
+ ParadigmsX, ResourceExtX, PredicationX
+
+-} \ No newline at end of file
diff --git a/src/Today.hs b/src/Today.hs
index 01505fac0..c8f07c07a 100644
--- a/src/Today.hs
+++ b/src/Today.hs
@@ -1 +1 @@
-module Today where today = "Thu May 27 17:23:01 CEST 2004"
+module Today where today = "Fri May 28 15:17:28 CEST 2004"