language-Modula2-0.1: examples/Modula-2_Libraries/C.-Lins_Modula-2_Software_Component_Library/Vol2/DeQueues/RELATION.DEF
DEFINITION MODULE Relations;
(*====================================================================
Version : 1.0 Sat, Mar 4, 1989 C. Lins
Compiler : JPI TopSpeed Modula-2
Component: Tool - Relational Operators Utility
REVISION HISTORY
v1.0 Sat, Mar 4, 1989 C. Lins
Initial JPI implementation.
INTRODUCTION
This module provides definitions for the standard Modula-2 relations
and relational operators, along with routines for mapping one type to
the other, deriving the NOT of a relational operator, and testing for
a given relational operator implying that another relational operator
is also true.
PROPRIETARY NOTICES
"Relations.DEF" Copyright (C) 1989 Charles A. Lins.
====================================================================*)
(*
Relation defines the minimum set of relational operators from which all
others may be derived. The following equivalent notations should be noted:
# -> NOT EqualTo
<= -> NOT GreaterThan
>= -> NOT LessThan.
RelOp defines the standard Modula-2 relational operators.
*)
TYPE Relation = ( (*-- Ordering Relations *)
less, (*-- < less than *)
equal, (*-- = equal to *)
greater, (*-- > greater than *)
incomparable (*-- ? failure result *)
);
TYPE RelOp = ( (*-- Relational Operators *)
lt, (*-- < less than *)
le, (*-- <= less than or equal to *)
eq, (*-- = equal to *)
ne, (*-- # not equal to *)
gt, (*-- > greater than *)
ge, (*-- >= greater than or equal to *)
unordered (*-- ? failure result *)
);
PROCEDURE RelToRelOp ( theRelation: Relation (*-- in *))
: RelOp (*-- out *);
PROCEDURE RelOpToRel ( theRelOp : RelOp (*-- in *))
: Relation (*-- out *);
(*-----------------------*)
PROCEDURE NotRelOpOf ( theRelOp : RelOp (*-- in *))
: RelOp (*-- out *);
PROCEDURE AImpliesB ( left : RelOp (*-- in *);
right : RelOp (*-- in *))
: BOOLEAN (*-- out *);
END Relations.