summaryrefslogtreecommitdiff
path: root/examples-3.0/tutorial/semantics/Answer.hs
diff options
context:
space:
mode:
Diffstat (limited to 'examples-3.0/tutorial/semantics/Answer.hs')
-rw-r--r--examples-3.0/tutorial/semantics/Answer.hs21
1 files changed, 21 insertions, 0 deletions
diff --git a/examples-3.0/tutorial/semantics/Answer.hs b/examples-3.0/tutorial/semantics/Answer.hs
new file mode 100644
index 000000000..08a76c5f1
--- /dev/null
+++ b/examples-3.0/tutorial/semantics/Answer.hs
@@ -0,0 +1,21 @@
+module Main where
+
+import GSyntax
+import AnswerBase
+import GF.GFCC.API
+
+main :: IO ()
+main = do
+ gr <- file2grammar "base.gfcc"
+ loop gr
+
+loop :: MultiGrammar -> IO ()
+loop gr = do
+ s <- getLine
+ case parse gr "BaseEng" "Question" s of
+ [] -> putStrLn "no parse"
+ ts -> mapM_ answer ts
+ loop gr
+ where
+ answer t = putStrLn $ linearize gr "BaseEng" $ gf $ question2answer $ fg t
+