summaryrefslogtreecommitdiff
path: root/src/compiler/GF/Compile/Compute
diff options
context:
space:
mode:
authorkr.angelov <kr.angelov@gmail.com>2013-11-12 09:54:57 +0000
committerkr.angelov <kr.angelov@gmail.com>2013-11-12 09:54:57 +0000
commit0095119ec09b394332a23ab7cc16c0009c3f162a (patch)
treec2c19ef36c3c04ae608ae93a9131ee1e71957c98 /src/compiler/GF/Compile/Compute
parentb111b476a75577a5b21d1d498975cbb2eeed9324 (diff)
added Predef.SOFT_BIND. This special token allows zero or more spaces between ordinary tokens. It is also used in the English RGL to attach the commas to the previous word.
Diffstat (limited to 'src/compiler/GF/Compile/Compute')
-rw-r--r--src/compiler/GF/Compile/Compute/AppPredefined.hs2
-rw-r--r--src/compiler/GF/Compile/Compute/Predef.hs4
-rw-r--r--src/compiler/GF/Compile/Compute/Value.hs3
3 files changed, 7 insertions, 2 deletions
diff --git a/src/compiler/GF/Compile/Compute/AppPredefined.hs b/src/compiler/GF/Compile/Compute/AppPredefined.hs
index a597726c9..0d23f8cb6 100644
--- a/src/compiler/GF/Compile/Compute/AppPredefined.hs
+++ b/src/compiler/GF/Compile/Compute/AppPredefined.hs
@@ -86,6 +86,8 @@ primitives = Map.fromList
[] typeStr []))) Nothing)
, (cBIND , ResOper (Just (noLoc (mkProd -- Str
[] typeStr []))) Nothing)
+ , (cSOFT_BIND, ResOper (Just (noLoc (mkProd -- Str
+ [] typeStr []))) Nothing)
]
where
fun from to = oper (mkFunType from to)
diff --git a/src/compiler/GF/Compile/Compute/Predef.hs b/src/compiler/GF/Compile/Compute/Predef.hs
index 8c793502a..8c5e5c5f7 100644
--- a/src/compiler/GF/Compile/Compute/Predef.hs
+++ b/src/compiler/GF/Compile/Compute/Predef.hs
@@ -78,7 +78,8 @@ predefList =
(cError,Error),
-- Canonical values:
(cPBool,PBool),(cPFalse,PFalse),(cPTrue,PTrue),(cInt,Int),
- (cInts,Ints),(cNonExist,NonExist),(cBIND,BIND)]
+ (cInts,Ints),(cNonExist,NonExist)
+ ,(cBIND,BIND),(cSOFT_BIND,SOFT_BIND)]
--- add more functions!!!
delta f vs =
@@ -107,6 +108,7 @@ delta f vs =
PTrue -> canonical
NonExist-> canonical
BIND -> canonical
+ SOFT_BIND->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 21a3eb20e..8f47ad184 100644
--- a/src/compiler/GF/Compile/Compute/Value.hs
+++ b/src/compiler/GF/Compile/Compute/Value.hs
@@ -51,5 +51,6 @@ data Predefined = Drop | Take | Tk | Dp | EqStr | Occur | Occurs | ToUpper
{- | Show | Read | ToStr | MapStr | EqVal -}
| Error
-- Canonical values below:
- | PBool | PFalse | PTrue | Int | Ints | NonExist | BIND
+ | PBool | PFalse | PTrue | Int | Ints | NonExist
+ | BIND | SOFT_BIND
deriving (Show,Eq,Ord,Ix,Bounded,Enum)