# HG changeset patch # User unc0rr # Date 1335886187 -14400 # Node ID cd28fe36170af9430e5d50dc465a2d791c56bb5b # Parent 1dc33050149d04b9f63b4fb3806c249c45899a82 Declare const ints as enums diff -r 1dc33050149d -r cd28fe36170a tools/pas2c.hs --- a/tools/pas2c.hs Tue May 01 19:28:30 2012 +0400 +++ b/tools/pas2c.hs Tue May 01 19:29:47 2012 +0400 @@ -370,8 +370,13 @@ tvar2C _ (VarDeclaration isConst (ids, t) mInitExpr) = do t' <- liftM (((if isConst then text "const" else empty) <+>) . ) $ type2C t + lt <- gets lastType ie <- initExpr mInitExpr - liftM (map(\i -> t' i <+> ie)) $ mapM (id2CTyped t) ids + case (isConst, lt, ids, mInitExpr) of + (True, BTInt, [i], Just _) -> do + i' <- id2CTyped t i + return [text "enum" <> braces (i' <+> ie)] + _ -> liftM (map(\i -> t' i <+> ie)) $ mapM (id2CTyped t) ids where initExpr Nothing = return $ empty initExpr (Just e) = liftM (text "=" <+>) (initExpr2C e)