summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile
diff options
context:
space:
mode:
Diffstat (limited to 'src/compiler/GF/Compile')
-rw-r--r--src/compiler/GF/Compile/Compute/Predef.hs5
-rw-r--r--src/compiler/GF/Compile/Compute/Value.hs2
-rw-r--r--src/compiler/GF/Compile/ConcreteToHaskell.hs8
-rw-r--r--src/compiler/GF/Compile/GeneratePMCFG.hs8
-rw-r--r--src/compiler/GF/Compile/PGFtoJS.hs4
-rw-r--r--src/compiler/GF/Compile/PGFtoPython.hs2
-rw-r--r--src/compiler/GF/Compile/TypeCheck/Primitives.hs4
7 files changed, 25 insertions, 8 deletions
diff --git a/src/compiler/GF/Compile/Compute/Predef.hs b/src/compiler/GF/Compile/Compute/Predef.hs
index 768dc2e6b..ab74f1f63 100644
--- a/src/compiler/GF/Compile/Compute/Predef.hs
+++ b/src/compiler/GF/Compile/Compute/Predef.hs
@@ -79,7 +79,8 @@ predefList =
-- Canonical values:
(cPBool,PBool),(cPFalse,PFalse),(cPTrue,PTrue),(cInt,Int),
(cInts,Ints),(cNonExist,NonExist)
- ,(cBIND,BIND),(cSOFT_BIND,SOFT_BIND),(cCAPIT,CAPIT)]
+ ,(cBIND,BIND),(cSOFT_BIND,SOFT_BIND),(cSOFT_SPACE,SOFT_SPACE)
+ ,(cCAPIT,CAPIT),(cALL_CAPIT,ALL_CAPIT)]
--- add more functions!!!
delta f vs =
@@ -109,7 +110,9 @@ delta f vs =
NonExist-> canonical
BIND -> canonical
SOFT_BIND->canonical
+ SOFT_SPACE->canonical
CAPIT -> canonical
+ ALL_CAPIT->canonical
where
canonical = delay
delay = return (VApp f vs) -- wrong number of arguments
diff --git a/src/compiler/GF/Compile/Compute/Value.hs b/src/compiler/GF/Compile/Compute/Value.hs
index 016c6572e..9bc258562 100644
--- a/src/compiler/GF/Compile/Compute/Value.hs
+++ b/src/compiler/GF/Compile/Compute/Value.hs
@@ -52,5 +52,5 @@ data Predefined = Drop | Take | Tk | Dp | EqStr | Occur | Occurs | ToUpper
| Error
-- Canonical values below:
| PBool | PFalse | PTrue | Int | Ints | NonExist
- | BIND | SOFT_BIND | CAPIT
+ | BIND | SOFT_BIND | SOFT_SPACE | CAPIT | ALL_CAPIT
deriving (Show,Eq,Ord,Ix,Bounded,Enum)
diff --git a/src/compiler/GF/Compile/ConcreteToHaskell.hs b/src/compiler/GF/Compile/ConcreteToHaskell.hs
index 3dc71b3f5..6dc572b39 100644
--- a/src/compiler/GF/Compile/ConcreteToHaskell.hs
+++ b/src/compiler/GF/Compile/ConcreteToHaskell.hs
@@ -248,9 +248,11 @@ convert' va gId vs gr = ppT
ppPredef n =
case predef n of
- Ok BIND -> single (c "BIND")
- Ok SOFT_BIND -> single (c "SOFT_BIND")
- Ok CAPIT -> single (c "CAPIT")
+ Ok BIND -> single (c "BIND")
+ Ok SOFT_BIND -> single (c "SOFT_BIND")
+ Ok SOFT_SPACE -> single (c "SOFT_SPACE")
+ Ok CAPIT -> single (c "CAPIT")
+ Ok ALL_CAPIT -> single (c "ALL_CAPIT")
_ -> Var n
ppP p =
diff --git a/src/compiler/GF/Compile/GeneratePMCFG.hs b/src/compiler/GF/Compile/GeneratePMCFG.hs
index 4aefd3b5f..f0c256775 100644
--- a/src/compiler/GF/Compile/GeneratePMCFG.hs
+++ b/src/compiler/GF/Compile/GeneratePMCFG.hs
@@ -386,13 +386,17 @@ convertTerm opts sel ctype (Alts s alts)= do CStr s <- convertTerm opts CNil cty
convertTerm opts sel ctype (Q (m,f))
| m == cPredef &&
- f == cNonExist = return (CStr [SymNE])
- | m == cPredef &&
f == cBIND = return (CStr [SymBIND])
| m == cPredef &&
f == cSOFT_BIND = return (CStr [SymSOFT_BIND])
| m == cPredef &&
+ f == cSOFT_SPACE = return (CStr [SymSOFT_SPACE])
+ | m == cPredef &&
f == cCAPIT = return (CStr [SymCAPIT])
+ | m == cPredef &&
+ f == cALL_CAPIT = return (CStr [SymALL_CAPIT])
+ | m == cPredef &&
+ f == cNonExist = return (CStr [SymNE])
{-
convertTerm opts sel@(CProj l _) ctype (ExtR t1 t2@(R rs2))
| l `elem` map fst rs2 = convertTerm opts sel ctype t2
diff --git a/src/compiler/GF/Compile/PGFtoJS.hs b/src/compiler/GF/Compile/PGFtoJS.hs
index 6c391f717..1d53cbc3b 100644
--- a/src/compiler/GF/Compile/PGFtoJS.hs
+++ b/src/compiler/GF/Compile/PGFtoJS.hs
@@ -86,10 +86,12 @@ sym2js (SymLit n l) = new "SymLit" [JS.EInt n, JS.EInt l]
sym2js (SymVar n l) = new "SymVar" [JS.EInt n, JS.EInt l]
sym2js (SymKS t) = new "SymKS" [JS.EStr t]
sym2js (SymKP ts alts) = new "SymKP" [JS.EArray (map sym2js ts), JS.EArray (map alt2js alts)]
-sym2js SymNE = new "SymNE" []
sym2js SymBIND = new "SymKS" [JS.EStr "&+"]
sym2js SymSOFT_BIND = new "SymKS" [JS.EStr "&+"]
+sym2js SymSOFT_SPACE = new "SymKS" [JS.EStr "&+"]
sym2js SymCAPIT = new "SymKS" [JS.EStr "&|"]
+sym2js SymALL_CAPIT = new "SymKS" [JS.EStr "&|"]
+sym2js SymNE = new "SymNE" []
alt2js (ps,ts) = new "Alt" [JS.EArray (map sym2js ps), JS.EArray (map JS.EStr ts)]
diff --git a/src/compiler/GF/Compile/PGFtoPython.hs b/src/compiler/GF/Compile/PGFtoPython.hs
index 10ff5a7cc..379a71598 100644
--- a/src/compiler/GF/Compile/PGFtoPython.hs
+++ b/src/compiler/GF/Compile/PGFtoPython.hs
@@ -80,7 +80,9 @@ pySymbol (SymKP ts alts) = pyDict 0 pyStr id [("pre", pyList 0 pySymbol ts), ("a
where alt2py (ps,ts) = pyTuple 0 (pyList 0 pyStr) [map pySymbol ps, ts]
pySymbol SymBIND = pyStr "&+"
pySymbol SymSOFT_BIND = pyStr "&+"
+pySymbol SymSOFT_SPACE = pyStr "&+"
pySymbol SymCAPIT = pyStr "&|"
+pySymbol SymALL_CAPIT = pyStr "&|"
pySymbol SymNE = pyDict 0 pyStr id [("nonExist", pyTuple 0 id [])]
----------------------------------------------------------------------
diff --git a/src/compiler/GF/Compile/TypeCheck/Primitives.hs b/src/compiler/GF/Compile/TypeCheck/Primitives.hs
index a318e74b0..d82cd1568 100644
--- a/src/compiler/GF/Compile/TypeCheck/Primitives.hs
+++ b/src/compiler/GF/Compile/TypeCheck/Primitives.hs
@@ -53,8 +53,12 @@ primitives = Map.fromList
[] typeStr []))) Nothing)
, (cSOFT_BIND, ResOper (Just (noLoc (mkProd -- Str
[] typeStr []))) Nothing)
+ , (cSOFT_SPACE,ResOper (Just (noLoc (mkProd -- Str
+ [] typeStr []))) Nothing)
, (cCAPIT , ResOper (Just (noLoc (mkProd -- Str
[] typeStr []))) Nothing)
+ , (cALL_CAPIT, ResOper (Just (noLoc (mkProd -- Str
+ [] typeStr []))) Nothing)
]
where
fun from to = oper (mkFunType from to)