summaryrefslogtreecommitdiff
path: root/src-3.0/GF
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@chalmers.se>2008-05-22 14:39:16 +0000
committerkr.angelov <kr.angelov@chalmers.se>2008-05-22 14:39:16 +0000
commitd8cabf026390f0f69a4e9b3a503f0ea5538ff362 (patch)
treeb317a33333ae524b9de127bfca8675a35c78f078 /src-3.0/GF
parentebbc0a3e806f2df19a74b3f7a1d3575476c3237b (diff)
move GFC and GFI
Diffstat (limited to 'src-3.0/GF')
-rw-r--r--src-3.0/GF/Devel/GFC.hs67
-rw-r--r--src-3.0/GF/Devel/GFI.hs82
2 files changed, 0 insertions, 149 deletions
diff --git a/src-3.0/GF/Devel/GFC.hs b/src-3.0/GF/Devel/GFC.hs
deleted file mode 100644
index 562570f14..000000000
--- a/src-3.0/GF/Devel/GFC.hs
+++ /dev/null
@@ -1,67 +0,0 @@
-module GF.Devel.GFC (mainGFC) where
--- module Main where
-
-import GF.Compile
-import GF.Devel.PrintGFCC
-import GF.GFCC.CId
-import GF.GFCC.DataGFCC
-import GF.GFCC.Raw.ParGFCCRaw
-import GF.GFCC.Raw.ConvertGFCC
-import GF.Devel.UseIO
-import GF.Infra.Option
-import GF.GFCC.API
-import GF.Data.ErrM
-
-import System.FilePath
-
-mainGFC :: [String] -> IO ()
-mainGFC xx = do
- let (opts,fs) = getOptions "-" xx
- case opts of
- _ | oElem (iOpt "help") opts -> putStrLn usageMsg
- _ | oElem (iOpt "-make") opts -> do
- gfcc <- appIOE (compileToGFCC opts fs) >>= err fail return
- let gfccFile = targetNameGFCC opts (absname gfcc)
- outputFile gfccFile (printGFCC gfcc)
- mapM_ (alsoPrint opts gfcc) printOptions
-
- -- gfc -o target.gfcc source_1.gfcc ... source_n.gfcc
- _ | all ((==".gfcc") . takeExtensions) fs -> do
- gfccs <- mapM file2gfcc fs
- let gfcc = foldl1 unionGFCC gfccs
- let gfccFile = targetNameGFCC opts (absname gfcc)
- outputFile gfccFile (printGFCC gfcc)
- mapM_ (alsoPrint opts gfcc) printOptions
-
- _ -> do
- appIOE (mapM_ (batchCompile opts) (map return fs)) >>= err fail return
- putStrLn "Done."
-
-targetName :: Options -> CId -> String
-targetName opts abs = case getOptVal opts (aOpt "target") of
- Just n -> n
- _ -> prCId abs
-
-targetNameGFCC :: Options -> CId -> FilePath
-targetNameGFCC opts abs = targetName opts abs ++ ".gfcc"
-
----- TODO: nicer and richer print options
-
-alsoPrint opts gr (opt,name) = do
- if oElem (iOpt opt) opts
- then outputFile name (prGFCC opt gr)
- else return ()
-
-outputFile :: FilePath -> String -> IO ()
-outputFile outfile output =
- do writeFile outfile output
- putStrLn $ "wrote file " ++ outfile
-
-printOptions = [
- ("haskell","GSyntax.hs"),
- ("haskell_gadt","GSyntax.hs"),
- ("js","grammar.js")
- ]
-
-usageMsg =
- "usage: gfc (-h | --make (-noopt) (-noparse) (-target=PREFIX) (-js | -haskell | -haskell_gadt)) (-src) FILES"
diff --git a/src-3.0/GF/Devel/GFI.hs b/src-3.0/GF/Devel/GFI.hs
deleted file mode 100644
index f78e576cf..000000000
--- a/src-3.0/GF/Devel/GFI.hs
+++ /dev/null
@@ -1,82 +0,0 @@
-module GF.Devel.GFI (mainGFI) where
-
-import GF.Command.Interpreter
-import GF.Command.Importing
-import GF.Command.Commands
-import GF.GFCC.API
-
-import GF.Devel.UseIO
-import GF.System.Readline (fetchCommand)
-import GF.Infra.Option ---- Haskell's option lib
-
-import System.CPUTime
-
-
-mainGFI :: [String] -> IO ()
-mainGFI xx = do
- putStrLn welcome
- env <- importInEnv emptyMultiGrammar xx
- loop (GFEnv env [] 0)
- return ()
-
-loop :: GFEnv -> IO GFEnv
-loop gfenv0 = do
- let env = commandenv gfenv0
- s <- fetchCommand (prompt env)
- let gfenv = gfenv0 {history = s : history gfenv0}
- case words s of
-
- -- special commands, working on GFEnv
- "i":args -> do
- env1 <- importInEnv (multigrammar env) args
- loopNewCPU $ gfenv {commandenv = env1}
- "e":_ -> loopNewCPU $ gfenv {commandenv=env{multigrammar=emptyMultiGrammar}}
- "ph":_ -> mapM_ putStrLn (reverse (history gfenv0)) >> loopNewCPU gfenv
- "q":_ -> putStrLn "See you." >> return gfenv
-
- -- ordinary commands, working on CommandEnv
- _ -> do
- interpretCommandLine env s
- loopNewCPU gfenv
-
-loopNewCPU gfenv = do
- cpu' <- getCPUTime
- putStrLn (show ((cpu' - cputime gfenv) `div` 1000000000) ++ " msec")
- loop $ gfenv {cputime = cpu'}
-
-importInEnv mgr0 xx = do
- let (opts,files) = getOptions "-" xx
- mgr1 <- case files of
- [] -> return mgr0
- _ -> importGrammar mgr0 opts files
- let env = CommandEnv mgr1 (allCommands mgr1)
- putStrLn $ unwords $ "\nLanguages:" : languages mgr1
- return env
-
-welcome = unlines [
- " ",
- " * * * ",
- " * * ",
- " * * ",
- " * ",
- " * ",
- " * * * * * * * ",
- " * * * ",
- " * * * * * * ",
- " * * * ",
- " * * * ",
- " ",
- "This is GF version 3.0 alpha. ",
- "Some things may work. "
- ]
-
-prompt env = absname ++ "> " where
- absname = case abstractName (multigrammar env) of
- "_" -> "" --- created by new Ident handling 22/5/2008
- n -> n
-
-data GFEnv = GFEnv {
- commandenv :: CommandEnv,
- history :: [String],
- cputime :: Integer
- }