diff options
author | goodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2002-05-20 14:07:36 +0000 |
---|---|---|
committer | goodale <goodale@17b73243-c579-4c4c-a9d2-2d5706c11dac> | 2002-05-20 14:07:36 +0000 |
commit | 3f6c7a77eee5addaa3eca660ad0baedc5e04e5f8 (patch) | |
tree | 430aa9cd3d431ace3827a0786bba5e6ac2ba8b36 /lib/sbin/create_c_stuff.pl | |
parent | 23c746c442dc67e290609679071f2462e4515741 (diff) |
Added array parameters.
Added accumulator parameters - needs a bit more error checking.
Preliminary support for aliasing parameters - disabled until it works
properly.
Tom
git-svn-id: http://svn.cactuscode.org/flesh/trunk@2829 17b73243-c579-4c4c-a9d2-2d5706c11dac
Diffstat (limited to 'lib/sbin/create_c_stuff.pl')
-rw-r--r-- | lib/sbin/create_c_stuff.pl | 43 |
1 files changed, 35 insertions, 8 deletions
diff --git a/lib/sbin/create_c_stuff.pl b/lib/sbin/create_c_stuff.pl index 9618fcae..99bb78c3 100644 --- a/lib/sbin/create_c_stuff.pl +++ b/lib/sbin/create_c_stuff.pl @@ -37,10 +37,19 @@ sub CreateParameterBindingFile foreach $parameter (&order_params($rhparameters,$rhparameter_db)) { - $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"}; - $type_string = &get_c_type_string($type); + my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"}; + my $type_string = &get_c_type_string($type); + + my $array_size = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E array_size"}; + + my $suffix = ''; + + if($array_size) + { + $suffix = "[$array_size]"; + } - push(@data, " $type_string$parameter;"); + push(@data, " $type_string$parameter$suffix;"); } # Some compilers don't like an empty structure. @@ -171,12 +180,30 @@ sub CreateCStructureParameterHeader foreach $parameter (&order_params($rhparameters, $rhparameter_db)) { - $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"}; - $type_string = &get_c_type_string($type); + my $type = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E type"}; + my $type_string = &get_c_type_string($type); + + my $array_size = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E array_size"}; + + my $suffix = ''; + my $prefix = ''; + + if($array_size) + { + $prefix = '*'; + $suffix = "[$array_size]"; + } + + my $name = $rhparameter_db->{"\U$rhparameters->{$parameter} $parameter\E alias"}; + + if(! $name) + { + $name = "$parameter"; + } - push(@data, " $type_string $parameter;"); - push(@definition, " const $type_string $parameter = $structure.$parameter; \\"); - push(@use, " (void) ($parameter + 0); \\"); + push(@data, " $type_string $parameter$suffix;"); + push(@definition, " const $type_string $prefix$name = $structure.$parameter; \\"); + push(@use, " (void) ($name + 0); \\"); } # Some compilers don't like an empty structure. |