summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Speech
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2010-08-09 10:10:08 +0000
committerkrasimir <krasimir@chalmers.se>2010-08-09 10:10:08 +0000
commitb0e110cf4f7c6e43d044f05fdedde3ffaabb9843 (patch)
treebbbcf12cc8940277b3f04076fb0c84979c149bfd /src/compiler/GF/Speech
parent68d04c9136baee39d3c0bf1b345f7d669d9e6072 (diff)
native representation for HOAS in PMCFG and incremental type checking of the parse forest
Diffstat (limited to 'src/compiler/GF/Speech')
-rw-r--r--src/compiler/GF/Speech/PGFToCFG.hs8
1 files changed, 3 insertions, 5 deletions
diff --git a/src/compiler/GF/Speech/PGFToCFG.hs b/src/compiler/GF/Speech/PGFToCFG.hs
index cead72f40..01c16393e 100644
--- a/src/compiler/GF/Speech/PGFToCFG.hs
+++ b/src/compiler/GF/Speech/PGFToCFG.hs
@@ -86,13 +86,11 @@ pgfToCFG pgf lang = mkCFG (showCId (lookStartCat pgf)) extCats (startRules ++ co
mkRhs = concatMap symbolToCFSymbol . Array.elems
containsLiterals :: Array DotPos Symbol -> Bool
- containsLiterals row = any isPredefFId [args!!n | SymCat n _ <- Array.elems row] ||
- not (null [n | SymLit n _ <- Array.elems row]) -- only this is needed for PMCFG.
- -- The first line is for backward compat.
+ containsLiterals row = not (null ([n | SymLit n _ <- Array.elems row] ++
+ [n | SymVar n _ <- Array.elems row]))
symbolToCFSymbol :: Symbol -> [CFSymbol]
- symbolToCFSymbol (SymCat n l) = [NonTerminal (fcatToCat (args!!n) l)]
- symbolToCFSymbol (SymLit n l) = [NonTerminal (fcatToCat (args!!n) l)]
+ symbolToCFSymbol (SymCat n l) = [let PArg _ fid = args!!n in NonTerminal (fcatToCat fid l)]
symbolToCFSymbol (SymKS ts) = map Terminal ts
symbolToCFSymbol (SymKP ts as) = map Terminal $ ts
---- ++ [t | Alt ss _ <- as, t <- ss]