Handle lambda character on Windows.

This commit is contained in:
Erik Svedäng 2018-02-12 13:58:33 +01:00
parent 86d2d1f24f
commit 3e8e0ce46c
3 changed files with 9 additions and 2 deletions

View File

@ -416,6 +416,8 @@ xobjToTy (XObj (Lst [XObj Ref i t, innerTy]) _ _) = -- This enables parsing of '
return (RefTy okInnerTy) return (RefTy okInnerTy)
xobjToTy (XObj (Lst (XObj (Sym (SymPath _ "Ref") _) _ _ : _)) _ _) = xobjToTy (XObj (Lst (XObj (Sym (SymPath _ "Ref") _) _ _ : _)) _ _) =
Nothing Nothing
xobjToTy (XObj (Lst [XObj (Sym (SymPath path "╬╗") _) fi ft, XObj (Arr argTys) ai at, retTy]) i t) =
xobjToTy (XObj (Lst [XObj (Sym (SymPath path "Fn") Symbol) fi ft, XObj (Arr argTys) ai at, retTy]) i t)
xobjToTy (XObj (Lst [XObj (Sym (SymPath path "λ") _) fi ft, XObj (Arr argTys) ai at, retTy]) i t) = xobjToTy (XObj (Lst [XObj (Sym (SymPath path "λ") _) fi ft, XObj (Arr argTys) ai at, retTy]) i t) =
xobjToTy (XObj (Lst [XObj (Sym (SymPath path "Fn") Symbol) fi ft, XObj (Arr argTys) ai at, retTy]) i t) xobjToTy (XObj (Lst [XObj (Sym (SymPath path "Fn") Symbol) fi ft, XObj (Arr argTys) ai at, retTy]) i t)
xobjToTy (XObj (Lst [XObj (Sym (SymPath _ "Fn") _) _ _, XObj (Arr argTys) _ _, retTy]) _ _) = xobjToTy (XObj (Lst [XObj (Sym (SymPath _ "Fn") _) _ _, XObj (Arr argTys) _ _, retTy]) _ _) =

View File

@ -115,7 +115,7 @@ aChar = do i <- createInfo
{-# ANN validCharacters "HLint: ignore Use String" #-} {-# ANN validCharacters "HLint: ignore Use String" #-}
validCharacters :: [Char] validCharacters :: [Char]
validCharacters = "+-*/?!><=_:" validCharacters = "+-*/?!><=_:\9580\9559"
symbolSegment :: Parsec.Parsec String ParseState String symbolSegment :: Parsec.Parsec String ParseState String
symbolSegment = do sym <- Parsec.many1 validInSymbol symbolSegment = do sym <- Parsec.many1 validInSymbol

View File

@ -16,6 +16,7 @@ module Types ( TypeMappings
import qualified Data.Map as Map import qualified Data.Map as Map
import Data.Maybe (fromMaybe) import Data.Maybe (fromMaybe)
import System.Info (os)
import Util import Util
--import Debug.Trace --import Debug.Trace
@ -40,6 +41,10 @@ data Ty = IntTy
| InterfaceTy | InterfaceTy
deriving (Eq, Ord) deriving (Eq, Ord)
fnOrLambda = case os of
"mingw32" -> "Fn"
_ -> "λ"
instance Show Ty where instance Show Ty where
show IntTy = "Int" show IntTy = "Int"
show FloatTy = "Float" show FloatTy = "Float"
@ -48,7 +53,7 @@ instance Show Ty where
show BoolTy = "Bool" show BoolTy = "Bool"
show StringTy = "String" show StringTy = "String"
show CharTy = "Char" show CharTy = "Char"
show (FuncTy argTys retTy) = "(λ [" ++ joinWithComma (map show argTys) ++ "] " ++ show retTy ++ ")" show (FuncTy argTys retTy) = "(" ++ fnOrLambda ++ " [" ++ joinWithComma (map show argTys) ++ "] " ++ show retTy ++ ")"
show (VarTy t) = t show (VarTy t) = t
show UnitTy = "()" show UnitTy = "()"
show ModuleTy = "Module" show ModuleTy = "Module"