diff options
| author | krasimir <krasimir@chalmers.se> | 2009-06-16 11:56:08 +0000 |
|---|---|---|
| committer | krasimir <krasimir@chalmers.se> | 2009-06-16 11:56:08 +0000 |
| commit | 8bc8929c59d2bd6f28d5dab9c7a9ca8a1c23609e (patch) | |
| tree | 84244e9cc3b969e86167b309538dfe08d7374630 /src/GF/Speech | |
| parent | b442cde3bd01fb935c215446097592510cf8e713 (diff) | |
completely phrase based parser and support for pre {} in PMCFG
Diffstat (limited to 'src/GF/Speech')
| -rw-r--r-- | src/GF/Speech/PGFToCFG.hs | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/GF/Speech/PGFToCFG.hs b/src/GF/Speech/PGFToCFG.hs index ef7f1f868..772ae90c1 100644 --- a/src/GF/Speech/PGFToCFG.hs +++ b/src/GF/Speech/PGFToCFG.hs @@ -82,17 +82,17 @@ pgfToCFG pgf lang = mkCFG (prCId (lookStartCat pgf)) extCats (startRules ++ conc FFun f ps rhs = functions pinfo ! funid mkRhs :: Array FPointPos FSymbol -> [CFSymbol] - mkRhs = map fsymbolToSymbol . Array.elems + mkRhs = concatMap fsymbolToSymbol . Array.elems containsLiterals :: Array FPointPos FSymbol -> Bool containsLiterals row = any isLiteralFCat [args!!n | FSymCat n _ <- Array.elems row] || not (null [n | FSymLit n _ <- Array.elems row]) -- only this is needed for PMCFG. -- The first line is for backward compat. - fsymbolToSymbol :: FSymbol -> CFSymbol - fsymbolToSymbol (FSymCat n l) = NonTerminal (fcatToCat (args!!n) l) - fsymbolToSymbol (FSymLit n l) = NonTerminal (fcatToCat (args!!n) l) - fsymbolToSymbol (FSymTok (KS t)) = Terminal t + fsymbolToSymbol :: FSymbol -> [CFSymbol] + fsymbolToSymbol (FSymCat n l) = [NonTerminal (fcatToCat (args!!n) l)] + fsymbolToSymbol (FSymLit n l) = [NonTerminal (fcatToCat (args!!n) l)] + fsymbolToSymbol (FSymKS ts) = map Terminal ts fixProfile :: Array FPointPos FSymbol -> Profile -> Profile fixProfile row = concatMap positions |
