summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authoraarne <aarne@chalmers.se>2010-03-26 17:38:20 +0000
committeraarne <aarne@chalmers.se>2010-03-26 17:38:20 +0000
commitc24440d1346a01d660f83359d8ef72a2ef1b0c13 (patch)
treec76eaa80d1be7bee4111a1dcee4b1dab1332121d /src
parent1d41c587ac396b57c1f2a93e417970f8ea39becb (diff)
fixes for webdemos, including bug in StructuralIta
Diffstat (limited to 'src')
-rw-r--r--src/server/PGFService.hs12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/server/PGFService.hs b/src/server/PGFService.hs
index 6f53d3768..6f2e38a33 100644
--- a/src/server/PGFService.hs
+++ b/src/server/PGFService.hs
@@ -125,10 +125,10 @@ doTranslate pgf input mcat mfrom mto =
doTranslateGroup :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> Maybe PGF.Language -> JSValue
doTranslateGroup pgf input mcat mfrom mto =
showJSON
- [toJSObject [("from", showJSON (PGF.showLanguage from)),
- ("to", showJSON (PGF.showLanguage to)),
+ [toJSObject [("from", showJSON (langOnly (PGF.showLanguage from))),
+ ("to", showJSON (langOnly (PGF.showLanguage to))),
("linearizations",showJSON
- [toJSObject [("text", unlines output)]])
+ [toJSObject [("text", doBind alt)] | alt <- output])
]
|
(from,trees) <- parse' pgf input mcat mfrom,
@@ -140,6 +140,12 @@ doTranslateGroup pgf input mcat mfrom mto =
start ls = [(l,[s]) | (l,s) <- ls]
more (l,s) =
Map.insertWith (\ [x] xs -> if elem x xs then xs else (x : xs)) l s
+ doBind = unwords . bind . words
+ bind ws = case ws of
+ w : "&+" : u : ws2 -> bind ((w ++ u) : ws2)
+ w : ws2 -> w : bind ws2
+ _ -> ws
+ langOnly = reverse . take 3 . reverse
doParse :: PGF -> String -> Maybe PGF.Type -> Maybe PGF.Language -> JSValue