summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhallgren <hallgren@chalmers.se>2012-11-23 19:59:39 +0000
committerhallgren <hallgren@chalmers.se>2012-11-23 19:59:39 +0000
commitbdaf7a8772d7ea703fa0e3144f0ee3a8914933a0 (patch)
treead99f33daafb6797e641b236a422d3b6713764e7 /src
parente0e8f89484efaec39e77e5c645697d311baaa0e4 (diff)
gf -server: support overloaded opers in gfse
Diffstat (limited to 'src')
-rw-r--r--src/compiler/SimpleEditor/Convert.hs10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/compiler/SimpleEditor/Convert.hs b/src/compiler/SimpleEditor/Convert.hs
index 6368772aa..1f0eacde0 100644
--- a/src/compiler/SimpleEditor/Convert.hs
+++ b/src/compiler/SimpleEditor/Convert.hs
@@ -6,7 +6,7 @@ import Data.List(sortBy)
import Data.Function(on)
import qualified Data.Map as Map
import Text.JSON(encode,makeObj)
-import Text.PrettyPrint(render)
+import Text.PrettyPrint(render,text,(<+>))
-- 4 extra imports just to deal with the ByteString mess...
import qualified Data.ByteString.Char8 as BS(pack)
@@ -126,7 +126,13 @@ convCncJment (name,jment) =
ResOper oltyp (Just lterm) -> return $ Op $ Oper lhs rhs
where
lhs = i++maybe "" ((" : "++) . render . ppTerm q 0 . unLoc) oltyp
- rhs = " = "++render (ppTerm q 0 (unLoc lterm))
+ rhs = render (text " ="<+>ppTerm q 0 (unLoc lterm))
+ ResOverload [] defs -> return $ Op $ Oper lhs rhs
+ where
+ lhs = i
+ rhs = render $ text " = overload"<+>ppTerm q 0 r
+ r = R [(lab,(Just ty,fu)) | (L _ ty,L _ fu) <-defs]
+ lab = ident2label name
CncFun _ (Just ldef) pprn _ -> -- ignores printname !!
do let (xs,e') = getAbs (unLoc ldef)
lin = render $ ppTerm q 0 e'