# 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)