mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-01 23:32:51 -06:00
pgf-service: add Jordis transfer function for OpenMath LaTeX output
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user