diff options
Diffstat (limited to 'src/GF/Conversion/Prolog.hs')
| -rw-r--r-- | src/GF/Conversion/Prolog.hs | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/GF/Conversion/Prolog.hs b/src/GF/Conversion/Prolog.hs index ab4b53e66..235f31198 100644 --- a/src/GF/Conversion/Prolog.hs +++ b/src/GF/Conversion/Prolog.hs @@ -101,10 +101,10 @@ prtSPath (Path path) = prtPList (map (either prtQ prtSTerm) path) prtSCat (Decl var cat args) = prVar ++ prtFunctor (prtQ cat) (map prtSTTerm args) where prVar | var == anyVar = "" - | otherwise = "_" ++ prt var ++ ":" + | otherwise = "_" ++ prtVar var ++ ":" prtSTTerm (con :@ args) = prtFunctor (prtQ con) (map prtSTTerm args) -prtSTTerm (TVar var) = "_" ++ prt var +prtSTTerm (TVar var) = "_" ++ prtVar var ---------------------------------------------------------------------- -- | MCFG to Prolog @@ -188,6 +188,11 @@ prtQStr atom = "'" ++ concatMap esc (prt atom) ++ "'" esc '\t' = "\\t" esc c = [c] +prtVar var = reprime (prt var) + where reprime "" = "" + reprime ('\'' : cs) = "_0" ++ reprime cs + reprime (c:cs) = c : reprime cs + prtLine = replicate 70 '%' |
