# HG changeset patch # User Wuzzy # Date 1538766259 -7200 # Node ID 84b2191efde9f21dfde93e96ace2f96e0e261215 # Parent aed7ee68305aeda1e67cc5e05a0392f65b332100 Backed out changeset aed7ee68305a diff -r aed7ee68305a -r 84b2191efde9 tools/pas2c/Pas2C.hs --- a/tools/pas2c/Pas2C.hs Fri Oct 05 20:56:40 2018 +0200 +++ b/tools/pas2c/Pas2C.hs Fri Oct 05 21:04:19 2018 +0200 @@ -698,11 +698,12 @@ (Identifier "LongInt" _) -> int (-2^31) (Identifier "SmallInt" _) -> int (-2^15) _ -> error $ "BuiltInFunction 'low': " ++ show e -initExpr2C' (BuiltInFunction "high" [InitReference e]) = return $ - case e of - (Identifier "LongInt" _) -> int (2^31 - 1) - (Identifier "SmallInt" _) -> int (2^15 - 1) - _ -> error $ "BuiltInFunction 'high': " ++ show e +initExpr2C' (BuiltInFunction "high" [e]) = do + void $ initExpr2C e + t <- gets lastType + case t of + (BTArray i _ _) -> initExpr2C' $ BuiltInFunction "pred" [InitRange i] + a -> error $ "BuiltInFunction 'high': " ++ show a initExpr2C' (BuiltInFunction "succ" [BuiltInFunction "pred" [e]]) = initExpr2C' e initExpr2C' (BuiltInFunction "pred" [BuiltInFunction "succ" [e]]) = initExpr2C' e initExpr2C' (BuiltInFunction "succ" [e]) = liftM (<> text " + 1") $ initExpr2C' e