From 8bc8929c59d2bd6f28d5dab9c7a9ca8a1c23609e Mon Sep 17 00:00:00 2001 From: krasimir Date: Tue, 16 Jun 2009 11:56:08 +0000 Subject: completely phrase based parser and support for pre {} in PMCFG --- src/GF/Speech/PGFToCFG.hs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'src/GF/Speech') 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 -- cgit v1.2.3