summaryrefslogtreecommitdiff
path: root/examples-3.0/tutorial/semantics/Answer.hs
diff options
context:
space:
mode:
authoraarne <aarne@cs.chalmers.se>2008-06-20 10:38:03 +0000
committeraarne <aarne@cs.chalmers.se>2008-06-20 10:38:03 +0000
commite4119186fa03a12d8820bc3c03797ac33c71e258 (patch)
tree87674c66ff9261fbdb9b75ea7507fdd0e5ec3c18 /examples-3.0/tutorial/semantics/Answer.hs
parentc3bb8267e67f8d2238a95f3930d6d8e3a6f7d234 (diff)
tutorial semantics example works except one rul
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
+