aboutsummaryrefslogtreecommitdiffstats
path: root/src/comparable
blob: 51762d3bcb7d3d514f3a0f9fd690b72defa28673 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# -*- shell-script -*-

Tparam=""
Targ=""
function T-array
{
    elems=""
    for elem in "$@"; do
	elems="${elems:+${elems}, }${elem}"
    done
    if [ $T = T ]; then
	echo "((${T}[])(new Object[] { ${elems} }))"
    else
	echo "(new ${T}[] { ${elems} })"
    fi
}
if [ $T = boolean ]; then
    function greater
    {   echo "($1) & !($2)"
    }
    function greater=
    {   echo "($1) | !($2)"
    }
    function =
    {   echo "($1) == ($2)"
    }
    function not=
    {   echo "($1) ^ ($2)"
    }
    function less=
    {   echo "!($1) | ($2)"
    }
    function less
    {   echo "!($1) & ($2)"
    }
elif [ $T = T ] || [ $T = T+ ]; then
    if [ $T = T ]; then
	Tparam="<T> "
	Targ=", Comparator<T> comparator"
	function greater
	{   echo "comparator.compare($1, $2) > 0"
	}
	function greater=
	{   echo "comparator.compare($1, $2) >= 0"
	}
	function =
	{   echo "comparator.compare($1, $2) == 0"
	}
	function not=
	{   echo "comparator.compare($1, $2) != 0"
	}
	function less=
	{   echo "comparator.compare($1, $2) <= 0"
	}
	function less
	{   echo "comparator.compare($1, $2) < 0"
	}
    else
	Tparam="<T extends Comparable<? super T>> "
	Targ=""
	function greater
	{   echo "($1).compareTo($2) > 0"
	}
	function greater=
	{   echo "($1).compareTo($2) >= 0"
	}
	function =
	{   echo "($1).compareTo($2) == 0"
	}
	function not=
	{   echo "($1).compareTo($2) != 0"
	}
	function less=
	{   echo "($1).compareTo($2) <= 0"
	}
	function less
	{   echo "($1).compareTo($2) < 0"
	}
	T=T
    fi
else
    function greater
    {   echo "($1) > ($2)"
    }
    function greater=
    {   echo "($1) >= ($2)"
    }
    function =
    {   echo "($1) == ($2)"
    }
    function not=
    {   echo "($1) != ($2)"
    }
    function less=
    {   echo "($1) <= ($2)"
    }
    function less
    {   echo "($1) < ($2)"
    }
fi
function fun
{
    echo "${Tparam}${1} ${2}(${3}${Targ})"
}