git.iko.soy/rowtype-yoga/purescript-native
on golang help sign in
C++: fixes due to changes in ProperName and AST deriving
commit0abf146d2151407675ba591b7f57fc603ecbcb59 authorAndy Arvanitis <andyarvanitis@gmail.com> dateWed 20 Jan 2016, 19:15 (11 years ago) parent9b1315b
3 files changed+10−30
src/Language/PureScript/CodeGen/Cpp.hs+1−22 src/Language/PureScript/CodeGen/Cpp/AST.hs+5−3 src/Language/PureScript/CodeGen/Cpp/Types.hs+4−5
src/Language/PureScript/CodeGen/Cpp.hs+1−22
@@ -66,8 +66,6 @@ moduleToCpp env (Module _ mn imps _ foreigns decls) = do
6666 let cppImports' = "PureScript" : cppImports
6767 cppDecls <- concat <$> mapM bindToCpp decls
6868 optimized <- traverse optimize cppDecls
69− -- datas <- datasToCpps env mn
70− synonyms <- synonymsToCpp env mn
7169 let moduleHeader = fileBegin mn "HH"
7270 ++ P.linebreak
7371 ++ ((\i -> CppInclude i i) <$> cppImports')
@@ -78,7 +76,6 @@ moduleToCpp env (Module _ mn imps _ foreigns decls) = do
7876 ++ P.linebreak
7977 ++ [CppNamespace (runModuleName mn) $
8078 (CppUseNamespace <$> cppImports') ++ P.linebreak
81− ++ synonyms
8279 ++ toHeader optimized
8380 ++ toHeaderFns optimized
8481 ]
@@ -504,27 +501,9 @@ moduleToCpp env (Module _ mn imps _ foreigns decls) = do
504501 -- |
505502 -- Find a class in scope by name, retrieving its list of constraints, function names and types.
506503 --
507− findClass :: Qualified ProperName -> Maybe ([String], [T.Constraint], [(String, T.Type)])
504+ findClass :: Qualified (ProperName ClassName) -> Maybe ([String], [T.Constraint], [(String, T.Type)])
508505 findClass name
509506 | Just (params, fns, constraints) <- M.lookup name (E.typeClasses env),
510507 fns' <- (\(i,t) -> (runIdent i, t)) <$> fns
511508 = Just (fst <$> params, constraints, (sortBy (compare `on` normalizedName . fst) fns'))
512509 findClass _ = Nothing
513−
514−-------------------------------------------------------------------------------------------------
515−synonymsToCpp :: Monad m => E.Environment -> ModuleName -> m [Cpp]
516−-------------------------------------------------------------------------------------------------
517−synonymsToCpp env mn
518− | tcs <- E.typeClasses env,
519− ds@(_:_) <- M.toList
520− . M.filterWithKey (\k@(Qualified mn' _) _ -> mn' == Just mn && M.lookup k tcs == Nothing)
521− $ E.typeSynonyms env = do
522− let names' = qualifiedToStr mn (Ident . runProperName) . fst <$> ds
523− typs = replicate (length ds) (CppAny [])
524− syns = zip names' typs
525− cpps = toTypeAlias <$> syns
526− return $ cpps
527− | otherwise = return []
528− where
529− toTypeAlias :: (String, CppType) -> Cpp
530− toTypeAlias (n, t) = CppTypeAlias (n, []) t []
src/Language/PureScript/CodeGen/Cpp/AST.hs+5−3
@@ -51,7 +51,8 @@ data CppUnaryOp
5151 -- |
5252 -- Constructor
5353 --
54− | CppNew deriving (Show, Eq, Data, Typeable)
54+ | CppNew
55+ deriving (Show, Read, Eq)
5556
5657-- |
5758-- Built-in binary operators
@@ -134,7 +135,7 @@ data BinaryOp
134135 --
135136 | ShiftRight
136137 --
137− deriving (Show, Eq, Data, Typeable)
138+ deriving (Show, Read, Eq)
138139
139140-- |
140141-- Data type for simplified C++11 expressions
@@ -263,7 +264,8 @@ data Cpp
263264 -- |
264265 -- Commented C++11
265266 --
266− | CppComment [Comment] Cpp deriving (Show, Eq, Data, Typeable)
267+ | CppComment [Comment] Cpp
268+ deriving (Show, Read, Eq)
267269
268270--
269271-- Traversals
src/Language/PureScript/CodeGen/Cpp/Types.hs+4−5
@@ -28,10 +28,10 @@ import qualified Language.PureScript.Constants as C
2828-- import Debug.Trace
2929
3030data CppType = CppPrimitive String | CppAuto | CppAny [CppTypeQual]
31− deriving (Eq, Show, Data, Typeable)
31+ deriving (Show, Read, Eq)
3232
3333data CppTypeQual = CppConst | CppRef
34− deriving (Eq, Show, Data)
34+ deriving (Show, Read, Eq)
3535
3636-- |
3737-- Value C++11 qualifiers
@@ -57,14 +57,13 @@ data CppValueQual
5757 -- Function or lambda is involved in recursion
5858 --
5959 | CppRecursive
60−
61− deriving (Show, Eq, Data, Typeable)
60+ deriving (Show, Read, Eq)
6261
6362-- |
6463-- C++ lambda capture list
6564--
6665data CppCaptureType = CppCaptureAll
67− deriving (Show, Eq, Data, Typeable)
66+ deriving (Show, Read, Eq)
6867
6968runType :: CppType -> String
7069runType (CppPrimitive t) = t