diff options
Diffstat (limited to 'examples/tutorial')
| -rw-r--r-- | examples/tutorial/embedded/Makefile | 15 | ||||
| -rw-r--r-- | examples/tutorial/embedded/Makefile_gfcc | 18 | ||||
| -rw-r--r-- | examples/tutorial/embedded/TransferDef.hs | 2 | ||||
| -rw-r--r-- | examples/tutorial/embedded/TransferDefGFCC.hs | 26 | ||||
| -rw-r--r-- | examples/tutorial/embedded/TransferLoop.hs | 6 | ||||
| -rw-r--r-- | examples/tutorial/embedded/TransferLoopGFCC.hs | 23 |
6 files changed, 8 insertions, 82 deletions
diff --git a/examples/tutorial/embedded/Makefile b/examples/tutorial/embedded/Makefile index 787c75e69..119d5d0fe 100644 --- a/examples/tutorial/embedded/Makefile +++ b/examples/tutorial/embedded/Makefile @@ -1,18 +1,11 @@ -all: gf hs run - -gf: - echo "pm | wf math.gfcm" | gf MathEng.gf MathFre.gf - -hs: gf - echo "pg -printer=haskell | wf GSyntax.hs" | gf math.gfcm - -run: hs +all: + gfc --make -haskell MathEng.gf MathFre.gf ghc --make -o ./math TransferLoop.hs strip math clean: - rm -f *.gfc *.gfr *.o *.hi + rm -f *.gfo *.o *.hi distclean: - rm -f GSyntax.hs math math.gfcm *.gfc *.gfr *.o *.hi + rm -f GSyntax.hs math Math.gfcc *.gfo *.o *.hi diff --git a/examples/tutorial/embedded/Makefile_gfcc b/examples/tutorial/embedded/Makefile_gfcc deleted file mode 100644 index 257128e60..000000000 --- a/examples/tutorial/embedded/Makefile_gfcc +++ /dev/null @@ -1,18 +0,0 @@ -all: gf hs run - -gf: - echo "pm -printer=gfcc | wf math.gfcc" | gf MathEng.gf MathFre.gf - -hs: gf - echo "pg -printer=gfcc_haskell | wf GSyntax.hs" | gf MathEng.gf MathFre.gf - -run: hs - ghc --make -o ./mathc TransferLoopGFCC.hs - strip mathc - -clean: - rm -f *.gfc *.gfr *.o *.hi - -distclean: - rm -f GSyntax.hs math math.gfcc *.gfc *.gfr *.o *.hi - diff --git a/examples/tutorial/embedded/TransferDef.hs b/examples/tutorial/embedded/TransferDef.hs index 4a86dc949..8be39107d 100644 --- a/examples/tutorial/embedded/TransferDef.hs +++ b/examples/tutorial/embedded/TransferDef.hs @@ -1,6 +1,6 @@ module TransferDef where -import GF.Embed.EmbedAPI (Tree) +import GF.GFCC.API (Tree) import GSyntax transfer :: Tree -> Tree diff --git a/examples/tutorial/embedded/TransferDefGFCC.hs b/examples/tutorial/embedded/TransferDefGFCC.hs deleted file mode 100644 index 00bbd5b3a..000000000 --- a/examples/tutorial/embedded/TransferDefGFCC.hs +++ /dev/null @@ -1,26 +0,0 @@ -module TransferDefGFCC where - -import GF.GFCC.API (Tree) -import GSyntax - -transfer :: Tree -> Tree -transfer = gf . answer . fg - -answer :: GQuestion -> GAnswer -answer p = case p of - GOdd x -> test odd x - GEven x -> test even x - GPrime x -> test prime x - -value :: GObject -> Int -value e = case e of - GNumber (GInt i) -> fromInteger i - -test :: (Int -> Bool) -> GObject -> GAnswer -test f x = if f (value x) then GYes else GNo - -prime :: Int -> Bool -prime x = elem x primes where - primes = sieve [2 .. x] - sieve (p:xs) = p : sieve [ n | n <- xs, n `mod` p > 0 ] - sieve [] = [] diff --git a/examples/tutorial/embedded/TransferLoop.hs b/examples/tutorial/embedded/TransferLoop.hs index 07b530f74..708578156 100644 --- a/examples/tutorial/embedded/TransferLoop.hs +++ b/examples/tutorial/embedded/TransferLoop.hs @@ -1,11 +1,11 @@ module Main where -import GF.Embed.EmbedAPI +import GF.GFCC.API import TransferDef (transfer) main :: IO () main = do - gr <- file2grammar "math.gfcm" + gr <- file2grammar "Math.gfcc" loop (translate transfer gr) loop :: (String -> String) -> IO () @@ -17,7 +17,7 @@ loop trans = do translate :: (Tree -> Tree) -> MultiGrammar -> String -> String translate tr gr = unlines . map transLine . lines where - transLine s = case parseAllLang gr (startCat gr) s of + transLine s = case parseAllLang gr "Question" s of (lg,t:_):_ -> linearize gr lg (tr t) _ -> "NO PARSE" diff --git a/examples/tutorial/embedded/TransferLoopGFCC.hs b/examples/tutorial/embedded/TransferLoopGFCC.hs deleted file mode 100644 index e76afb788..000000000 --- a/examples/tutorial/embedded/TransferLoopGFCC.hs +++ /dev/null @@ -1,23 +0,0 @@ -module Main where - -import GF.GFCC.API -import TransferDefGFCC (transfer) - -main :: IO () -main = do - gr <- file2grammar "math.gfcc" - loop (translate transfer gr) - -loop :: (String -> String) -> IO () -loop trans = do - s <- getLine - if s == "quit" then putStrLn "bye" else do - putStrLn $ trans s - loop trans - -translate :: (Tree -> Tree) -> MultiGrammar -> String -> String -translate tr gr = unlines . map transLine . lines where - transLine s = case parseAllLang gr "Question" s of - (lg,t:_):_ -> linearize gr lg (tr t) - _ -> "NO PARSE" - |
