| 1 | -- Copyright 2012-2016 Free Software Foundation, Inc. |
| 2 | -- |
| 3 | -- This program is free software; you can redistribute it and/or modify |
| 4 | -- it under the terms of the GNU General Public License as published by |
| 5 | -- the Free Software Foundation; either version 3 of the License, or |
| 6 | -- (at your option) any later version. |
| 7 | -- |
| 8 | -- This program is distributed in the hope that it will be useful, |
| 9 | -- but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | -- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | -- GNU General Public License for more details. |
| 12 | -- |
| 13 | -- You should have received a copy of the GNU General Public License |
| 14 | -- along with this program. If not, see <http://www.gnu.org/licenses/>. |
| 15 | |
| 16 | package Ops is |
| 17 | type Int is private; |
| 18 | |
| 19 | function Make (X: Natural) return Int; |
| 20 | |
| 21 | function "+" (I1, I2 : Int) return Int; |
| 22 | function "-" (I1, I2 : Int) return Int; |
| 23 | function "*" (I1, I2 : Int) return Int; |
| 24 | function "/" (I1, I2 : Int) return Int; |
| 25 | function "mod" (I1, I2 : Int) return Int; |
| 26 | function "rem" (I1, I2 : Int) return Int; |
| 27 | function "**" (I1, I2 : Int) return Int; |
| 28 | function "<" (I1, I2 : Int) return Boolean; |
| 29 | function "<=" (I1, I2 : Int) return Boolean; |
| 30 | function ">" (I1, I2 : Int) return Boolean; |
| 31 | function ">=" (I1, I2 : Int) return Boolean; |
| 32 | function "=" (I1, I2 : Int) return Boolean; |
| 33 | function "and" (I1, I2 : Int) return Int; |
| 34 | function "or" (I1, I2 : Int) return Int; |
| 35 | function "xor" (I1, I2 : Int) return Int; |
| 36 | function "&" (I1, I2 : Int) return Int; |
| 37 | function "abs" (I1 : Int) return Int; |
| 38 | function "not" (I1 : Int) return Int; |
| 39 | function "+" (I1 : Int) return Int; |
| 40 | function "-" (I1 : Int) return Int; |
| 41 | |
| 42 | procedure Dummy (B1 : Boolean); |
| 43 | procedure Dummy (I1 : Int); |
| 44 | |
| 45 | private |
| 46 | |
| 47 | type IntRep is mod 2**31; |
| 48 | type Int is new IntRep; |
| 49 | |
| 50 | end Ops; |
| 51 | |
| 52 | |