diff options
| author | krasimir <krasimir@chalmers.se> | 2010-08-09 10:10:08 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2010-08-09 10:10:08 +0000 |
| commit | b0e110cf4f7c6e43d044f05fdedde3ffaabb9843 (patch) | |
| tree | bbbcf12cc8940277b3f04076fb0c84979c149bfd /src/compiler/GF/Speech | |
| parent | 68d04c9136baee39d3c0bf1b345f7d669d9e6072 (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.hs | 8 |
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] |
