our
$VERSION
= 0.003_000;
our
hashref
$properties
= {};
sub
ast_to_rperl__generate {
{
my
string_hashref::method
$RETURN_TYPE
};
(
my
object
$self
,
my
string_hashref
$modes
) =
@ARG
;
my
string_hashref
$rperl_source_group
= {
PMC
=>
q{}
};
my
string
$self_class
=
ref
$self
;
if
(
$self_class
eq
'TypeInner_244'
) {
my
string
$my
=
$self
->{children}->[0];
my
string
$type
=
$self
->{children}->[1]->{children}->[0];
my
string
$TYPED
=
$self
->{children}->[2];
my
string
$name
=
$self
->{children}->[3]->{children}->[0];
$name
=~ s/^(\w+)\s*$/$1/gxms;
if
(
$name
!~ /^[a-z]/) {
die
'ERROR ECOGEASRP025, CODE GENERATOR, ABSTRACT SYNTAX TO RPERL: invalid redundant name '
.
q{'}
.
$name
.
q{'}
.
' does not start with a lowercase letter a-z, dying'
.
"\n"
;
}
my
string
$equal
=
$self
->{children}->[4];
$rperl_source_group
->{PMC} .=
$my
.
q{ }
.
$type
.
q{ }
.
$TYPED
.
$name
.
q{ }
.
$equal
.
q{ }
;
}
else
{
die
RPerl::Parser::rperl_rule__replace(
'ERROR ECOGEASRP000, CODE GENERATOR, ABSTRACT SYNTAX TO RPERL: Grammar rule '
.
$self_class
.
' found where TypeInner_244 expected, dying'
) .
"\n"
;
}
return
$rperl_source_group
;
}
sub
ast_to_cpp__generate__CPPOPS_PERLTYPES {
{
my
string_hashref::method
$RETURN_TYPE
};
(
my
object
$self
,
my
string_hashref
$modes
) =
@ARG
;
my
string_hashref
$cpp_source_group
= {
CPP
=>
q{// <<< RP::DT::TI __DUMMY_SOURCE_CODE CPPOPS_PERLTYPES >>>}
.
"\n"
};
return
$cpp_source_group
;
}
sub
ast_to_cpp__generate__CPPOPS_CPPTYPES {
{
my
string_hashref::method
$RETURN_TYPE
};
(
my
object
$self
,
my
string_hashref
$modes
) =
@ARG
;
my
string_hashref
$cpp_source_group
= {};
my
string
$self_class
=
ref
$self
;
if
(
$self_class
eq
'TypeInner_244'
) {
my
string
$type
=
$self
->{children}->[1]->{children}->[0];
my
string
$name
=
$self
->{children}->[3]->{children}->[0];
$name
=~ s/^(\w+)\s*$/$1/gxms;
if
(
$name
!~ /^[a-z]/) {
die
'ERROR ECOGEASCP025, CODE GENERATOR, ABSTRACT SYNTAX TO C++: invalid redundant name '
.
q{'}
.
$name
.
q{'}
.
' does not start with a lowercase letter a-z, dying'
.
"\n"
;
}
$type
= RPerl::Generator::type_convert_perl_to_cpp(
$type
, 1);
$cpp_source_group
->{CPP} =
$type
;
}
else
{
die
RPerl::Parser::rperl_rule__replace(
'ERROR ECOGEASCP000, CODE GENERATOR, ABSTRACT SYNTAX TO C++: Grammar rule '
.
$self_class
.
' found where TypeInner_244 expected, dying'
) .
"\n"
;
}
return
$cpp_source_group
;
}
1;