diff options
| author | bringert <bringert@cs.chalmers.se> | 2006-12-11 19:41:03 +0000 |
|---|---|---|
| committer | bringert <bringert@cs.chalmers.se> | 2006-12-11 19:41:03 +0000 |
| commit | c07300b86be9aa84cf68c3fc510e8af5812cee13 (patch) | |
| tree | c828ae58db801e03267a52bf3fc5fd9062367a1a /src | |
| parent | 19d5f1b2eae3b5292d78b9c2118037ef135a9b70 (diff) | |
SRGS+SISR: put tags after items.
Diffstat (limited to 'src')
| -rw-r--r-- | src/GF/Speech/PrSRGS.hs | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/GF/Speech/PrSRGS.hs b/src/GF/Speech/PrSRGS.hs index 4a88b6cdc..175b97366 100644 --- a/src/GF/Speech/PrSRGS.hs +++ b/src/GF/Speech/PrSRGS.hs @@ -99,7 +99,7 @@ mkProd sisr isList (SRGAlt p n@(Name f pr) rhs) prodItem :: Maybe SISRFormat -> Name -> Maybe Double -> [XML] -> XML -prodItem sisr n mp xs = Tag "item" w (t++cs) +prodItem sisr n mp xs = Tag "item" w (cs++t) where w = maybe [] (\p -> [("weight", show p)]) mp t = prodTag sisr n @@ -111,10 +111,11 @@ prodTag :: Maybe SISRFormat -> Name -> [XML] prodTag sisr (Name f prs) = [tag sisr ts] where ts = [(EThis :. "name") := (EStr (prIdent f))] ++ - [(EThis :. ("arg" ++ show n)) := (EStr (argInit (prs!!n))) - | n <- [0..length prs-1]] - argInit (Unify _) = "?" - argInit (Constant f) = maybe "?" prIdent (forestName f) + [(EThis :. ("arg" ++ show n)) := (EStr v) + | n <- [0..length prs-1], v <- argInit (prs!!n)] + argInit (Unify []) = ["?"] + argInit (Unify _) = [] + argInit (Constant f) = [maybe "?" prIdent (forestName f)] symItem :: Maybe SISRFormat -> [Profile a] -> Symbol String Token -> Int -> XML symItem sisr prs (Cat c) x = Tag "item" [] ([Tag "ruleref" [("uri","#" ++ prCat c)] []]++t) |
