source: libcfa/src/containers/pair.cfa @ fd54fef

ADTarm-ehast-experimentalenumforall-pointer-decayjacob/cs343-translationnew-ast-unique-exprpthread-emulationqualifiedEnum
Last change on this file since fd54fef was fd54fef, checked in by Michael Brooks <mlbrooks@…>, 3 years ago

Converting the project to use the new syntax for otype, dtype and ttytpe.

Changed prelude (gen), libcfa and test suite to use it. Added a simple deprecation rule of the old syntax to the parser; we might wish to support both syntaxes "officially," like with an extra CLI switch, but this measure should serve as a simple reminder for our team to try the new syntax.

  • Property mode set to 100644
File size: 1.4 KB
RevLine 
[eaa5043]1// The contents of this file are covered under the licence agreement in the
2// file "LICENCE" distributed with Cforall.
3//
4// pair.c --
5//
6// Author           : Aaron Moss
7// Created On       : Wed Apr 12 15:32:00 2017
8// Last Modified By : Aaron Moss
9// Last Modified On : Wed Apr 12 15:32:00 2017
10// Update Count     : 1
11//
12
[58b6d1b]13#include <containers/pair.hfa>
[eaa5043]14
[fd54fef]15forall(R, S
[eaa5043]16        | { int ?==?(R, R); int ?<?(R, R); int ?<?(S, S); })
17int ?<?(pair(R, S) p, pair(R, S) q) {
18        return p.first < q.first || ( p.first == q.first && p.second < q.second );
19}
20
[fd54fef]21forall(R, S
[eaa5043]22        | { int ?==?(R, R); int ?<?(R, R); int ?<=?(S, S); })
23int ?<=?(pair(R, S) p, pair(R, S) q) {
24        return p.first < q.first || ( p.first == q.first && p.second <= q.second );
25}
26
[fd54fef]27forall(R, S | { int ?==?(R, R); int ?==?(S, S); })
[eaa5043]28int ?==?(pair(R, S) p, pair(R, S) q) {
29        return p.first == q.first && p.second == q.second;
30}
31
[fd54fef]32forall(R, S | { int ?!=?(R, R); int ?!=?(S, S); })
[eaa5043]33int ?!=?(pair(R, S) p, pair(R, S) q) {
34        return p.first != q.first || p.second != q.second;
35}
36
[fd54fef]37forall(R, S
[eaa5043]38        | { int ?==?(R, R); int ?>?(R, R); int ?>?(S, S); })
39int ?>?(pair(R, S) p, pair(R, S) q) {
40        return p.first > q.first || ( p.first == q.first && p.second > q.second );
41}
42
[fd54fef]43forall(R, S
[eaa5043]44        | { int ?==?(R, R); int ?>?(R, R); int ?>=?(S, S); })
45int ?>=?(pair(R, S) p, pair(R, S) q) {
46        return p.first > q.first || ( p.first == q.first && p.second >= q.second );
47}
Note: See TracBrowser for help on using the repository browser.