# HG changeset patch # User alfadur # Date 1542608977 -10800 # Node ID 0f8b647ea317dc46ee7bf8c8b7a33ec55c4a9ce8 # Parent 3a9e4f35aa682e958f92cbf1af77d6a3aa236ab0 corrected parsing joined with unC0Rr's corrected generating finally gives the right result diff -r 3a9e4f35aa68 -r 0f8b647ea317 tools/pas2c/Pas2C.hs --- a/tools/pas2c/Pas2C.hs Mon Nov 19 06:57:36 2018 +0300 +++ b/tools/pas2c/Pas2C.hs Mon Nov 19 09:29:37 2018 +0300 @@ -774,6 +774,12 @@ where bt = BTEnum $ map (\(Identifier i _) -> map toLower i) ids type2C' (ArrayDecl Nothing t) = type2C (PointerTo t) + type2C' (ArrayDecl (Just r1) (ArrayDecl (Just r2) t)) = do + t' <- type2C t + lt <- gets lastType + r1' <- initExpr2C (InitRange r1) + r2' <- initExpr2C (InitRange r2) + return $ \i -> t' i <> brackets r2' <> brackets r1' type2C' (ArrayDecl (Just r) t) = do t' <- type2C t lt <- gets lastType