summaryrefslogtreecommitdiff
path: root/src/GF/Speech
diff options
context:
space:
mode:
authorkrasimir <krasimir@chalmers.se>2009-06-16 11:56:08 +0000
committerkrasimir <krasimir@chalmers.se>2009-06-16 11:56:08 +0000
commit8bc8929c59d2bd6f28d5dab9c7a9ca8a1c23609e (patch)
tree84244e9cc3b969e86167b309538dfe08d7374630 /src/GF/Speech
parentb442cde3bd01fb935c215446097592510cf8e713 (diff)
completely phrase based parser and support for pre {} in PMCFG
Diffstat (limited to 'src/GF/Speech')
-rw-r--r--src/GF/Speech/PGFToCFG.hs10
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