diff -r d987e65761ac -r aed7ee68305a tools/pas2c/Pas2C.hs --- a/tools/pas2c/Pas2C.hs Fri Oct 05 20:28:13 2018 +0200 +++ b/tools/pas2c/Pas2C.hs Fri Oct 05 20:56:40 2018 +0200 @@ -698,12 +698,11 @@ (Identifier "LongInt" _) -> int (-2^31) (Identifier "SmallInt" _) -> int (-2^15) _ -> error $ "BuiltInFunction 'low': " ++ 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 "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 "succ" [BuiltInFunction "pred" [e]]) = initExpr2C' e initExpr2C' (BuiltInFunction "pred" [BuiltInFunction "succ" [e]]) = initExpr2C' e initExpr2C' (BuiltInFunction "succ" [e]) = liftM (<> text " + 1") $ initExpr2C' e