blob: 26feb1fc18eeae0516cb4758643a931e268f4c84 (
plain) (
tree)
|
|
# -*- shell-script -*-
Telement="${T}"
Tarray="${Telement}[]"
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 cmp
{ echo "(($1) == ($2) ? 0 : ($1) ? 1 : -1)"
}
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 cmp
{ echo "comparator.compare($1, $2)"
}
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
if [ "${T}" = T++ ]; then
Tparam="<T> "
Targ=""
Telement="Comparable<T>"
Tarray="${Telement}[]"
else
Tparam="<T extends Comparable<? super T>> "
Targ=""
fi
function cmp
{ echo "($1).compareTo($2)"
}
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
if [ "${T}" = long ]; then
function cmp
{ echo "(int)(($1) - ($2) | ($1) - ($2) >> 32L)"
}
elif [[ "${T}" = @(float|double) ]]; then
function cmp
{ echo "(($1) < ($2) ? -1 : ($1) > ($2) ? 1 : 0)"
}
else
function cmp
{ echo "(($1) - ($2))"
}
fi
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
if [[ "${T}" = @(boolean|char|byte|short|int|long|float|double) ]]; then
function equal
{ echo "($1) == ($2)"
}
else
function equal
{ echo "($1).equals($2)"
}
fi
function fun
{
echo "${Tparam}${1} ${2}(${3}${Targ})"
}
|