pgf-service: add Jordis transfer function for OpenMath LaTeX output

This commit is contained in:
hallgren
2011-08-23 16:25:00 +00:00
parent 0880abdc04
commit ba03db58a4
3 changed files with 42 additions and 3 deletions

View File

@@ -28,6 +28,7 @@ import System.Process
import System.Exit
import System.IO
import System.Directory(removeFile)
import Fold(fold) -- transfer function for OpenMath LaTeX
logFile :: FilePath
logFile = "pgf-error.log"
@@ -164,7 +165,7 @@ doTranslate pgf input mcat mfrom mto =
("linearizations",showJSON
[toJSObject [("to", showJSON to),
("text",showJSON output)]
| (to,output) <- linearizeAndBind pgf mto tree]
| (to,output) <- transferLinearizeAndBind pgf mto tree]
)]
| tree <- trees])]
jsonParseOutput (PGF.ParseIncomplete)= []
@@ -496,6 +497,16 @@ linearizeAndBind pgf mto t = [(la, binds s) | (la,s) <- linearize' pgf mto t]
u:ws2 -> u : bs ws2
_ -> []
-- Apply transfer function OpenMath LaTeX
transferLinearizeAndBind pgf mto t = [(la, binds s) | (la,s) <- unfolded ++ folded, not (null s)]
where unfolded = linearize' pgf mto t
folded = linearize' pgf mto (fold t)
binds = unwords . bs . words
bs ws = case ws of
u:"&+":v:ws2 -> bs ((u ++ v):ws2)
u:ws2 -> u : bs ws2
_ -> []
selectLanguage :: PGF -> Maybe (Accept Language) -> PGF.Language
selectLanguage pgf macc = case acceptable of
[] -> case PGF.languages pgf of