our
$VERSION
= 0.010_000;
package
character;
package
character::method;
use
parent -norequire,
qw(method)
;
package
boolean;
package
unsigned_integer;
package
integer;
package
number;
package
string;
our
@EXPORT
=
qw(character_CHECK character_CHECKTRACE character_to_boolean character_to_unsigned_integer character_to_integer character_to_number character_to_string)
;
our
@EXPORT_OK
=
qw(character_typetest0 character_typetest1)
;
sub
character_CHECK {
{
my
void
$RETURN_TYPE
};
(
my
$possible_character
) =
@ARG
;
if
( not(
defined
$possible_character
) ) {
die
(
"\nERROR ETV00, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:\ncharacter value expected but undefined/null value found,\ndying\n"
);
}
if
( not( main::RPerl_SvCOKp(
$possible_character
) ) ) {
die
(
"\nERROR ETV01, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:\ncharacter value expected but non-character value found,\ndying\n"
);
}
return
;
}
sub
character_CHECKTRACE {
{
my
void
$RETURN_TYPE
};
(
my
$possible_character
,
my
$variable_name
,
my
$subroutine_name
) =
@ARG
;
if
( not(
defined
$possible_character
) ) {
die
(
"\nERROR ETV00, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:\ncharacter value expected but undefined/null value found,\nin variable "
.
$variable_name
.
" from subroutine "
.
$subroutine_name
.
",\ndying\n"
);
}
if
( not( main::RPerl_SvCOKp(
$possible_character
) ) ) {
die
(
"\nERROR ETV01, TYPE-CHECKING MISMATCH, PERLOPS_PERLTYPES:\ncharacter value expected but non-character value found,\nin variable "
.
$variable_name
.
" from subroutine "
.
$subroutine_name
.
",\ndying\n"
);
}
return
;
}
sub
character_to_boolean {
{
my
boolean
$RETURN_TYPE
};
(
my
character
$input_character
) =
@ARG
;
character_CHECKTRACE(
$input_character
,
'$input_character'
,
'character_to_boolean()'
);
if
((
$input_character
* 1) == 0) {
return
0; }
else
{
return
1; }
return
;
}
sub
character_to_unsigned_integer {
{
my
unsigned_integer
$RETURN_TYPE
};
(
my
character
$input_character
) =
@ARG
;
character_CHECKTRACE(
$input_character
,
'$input_character'
,
'character_to_unsigned_integer()'
);
return
floor
abs
(
$input_character
* 1);
}
sub
character_to_integer {
{
my
integer
$RETURN_TYPE
};
(
my
character
$input_character
) =
@ARG
;
character_CHECKTRACE(
$input_character
,
'$input_character'
,
'character_to_integer()'
);
return
floor (
$input_character
* 1);
}
sub
character_to_number {
{
my
number
$RETURN_TYPE
};
(
my
character
$input_character
) =
@ARG
;
character_CHECKTRACE(
$input_character
,
'$input_character'
,
'character_to_number()'
);
return
$input_character
* 1.0;
}
sub
character_to_string {
{
my
string
$RETURN_TYPE
};
(
my
character
$input_character
) =
@ARG
;
character_CHECKTRACE(
$input_character
,
'$input_character'
,
'character_to_string()'
);
return
$input_character
;
}
sub
character_typetest0 { {
my
character
$RETURN_TYPE
};
return
chr
(main::RPerl__DataType__Character__MODE_ID() + (
ord
'0'
)); }
sub
character_typetest1 {
{
my
character
$RETURN_TYPE
};
(
my
character
$lucky_character
) =
@ARG
;
character_CHECKTRACE(
$lucky_character
,
'$lucky_character'
,
'character_typetest1()'
);
return
chr
((
ord
$lucky_character
) + main::RPerl__DataType__Character__MODE_ID());
}
1;