From 6c73d2ced5f82cf8bdafa5d0811b1b61b5f8b61f Mon Sep 17 00:00:00 2001 From: Mart Lubbers Date: Sun, 6 Sep 2020 19:29:44 +0200 Subject: [PATCH] . --- gengen/Data/GenType.dcl | 4 ++-- gengen/Data/GenType.icl | 4 ++-- gengen/Data/GenType/CParser.icl | 4 +++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/gengen/Data/GenType.dcl b/gengen/Data/GenType.dcl index c77320e..dfcfe96 100644 --- a/gengen/Data/GenType.dcl +++ b/gengen/Data/GenType.dcl @@ -73,8 +73,8 @@ typeGenType :: Type -> [GenType] /** * Return the kind of the type */ -:: Kind = KStar | KArrow Kind Kind -genTypeKind :: Type -> Kind +:: Kind = KStar | (KArrow) infixr 1 Kind Kind +genTypeKind :: GenType -> Kind /** * Predicate whether the outer type is a builtin type diff --git a/gengen/Data/GenType.icl b/gengen/Data/GenType.icl index 37f6df5..f218c93 100644 --- a/gengen/Data/GenType.icl +++ b/gengen/Data/GenType.icl @@ -277,8 +277,8 @@ typeGenType (TyObject _ fs) = [c.gcd_type\\(c, _)<-fs] genTypeKind :: GenType -> Kind genTypeKind (GenTypeCons _) = KStar genTypeKind (GenTypeVar _) = KStar -genTypeKind (GenTypeArrow l r) = undef -genTypeKind (GenTypeApp l r) = undef +genTypeKind (GenTypeArrow l r) = genTypeKind l KArrow genTypeKind r +genTypeKind (GenTypeApp l r) = genTypeKind l KArrow genTypeKind r instance isBuiltin String where diff --git a/gengen/Data/GenType/CParser.icl b/gengen/Data/GenType/CParser.icl index 7f1556d..1776e28 100644 --- a/gengen/Data/GenType/CParser.icl +++ b/gengen/Data/GenType/CParser.icl @@ -113,7 +113,9 @@ where parsedefs = foldr (\t c->parsedef t [";\n":c]) [] o flatten parsedef :: Type [String] -> [String] - parsedef t c = ctypename t [" *", parsefun t, "(uint8_t (*get)()",pd t, ")":c] + parsedef t c + # (pt, _) = trace_stdout (parsefun t, map genTypeKind $ typeGenType t) + = ctypename t [" *", /*parsefun */pt, "(uint8_t (*get)()",pd t, ")":c] where pd (TyBasic s) = "" pd (TyUList _ _) = ", void *parse_0(uint8_t (*get)())" -- 2.20.1