source: branches/samba-3.5.x/pidl/lib/Parse/Pidl/CUtil.pm

Last change on this file was 414, checked in by Herwig Bauernfeind, 15 years ago

Samba 3.5.0: Initial import

File size: 881 bytes
Line 
1###################################################
2# C utility functions for pidl
3# Copyright jelmer@samba.org 2005-2007
4# released under the GNU GPL
5package Parse::Pidl::CUtil;
6
7require Exporter;
8@ISA = qw(Exporter);
9@EXPORT = qw(get_pointer_to get_value_of get_array_element);
10use vars qw($VERSION);
11$VERSION = '0.01';
12
13use strict;
14
15sub get_pointer_to($)
16{
17 my $var_name = shift;
18
19 if ($var_name =~ /^\*(.*)$/) {
20 return $1;
21 } elsif ($var_name =~ /^\&(.*)$/) {
22 return "&($var_name)";
23 } else {
24 return "&$var_name";
25 }
26}
27
28sub get_value_of($)
29{
30 my $var_name = shift;
31
32 if ($var_name =~ /^\&(.*)$/) {
33 return $1;
34 } else {
35 return "*$var_name";
36 }
37}
38
39sub get_array_element($$)
40{
41 my ($var_name, $idx) = @_;
42
43 if ($var_name =~ /^\*.*$/) {
44 $var_name = "($var_name)";
45 } elsif ($var_name =~ /^\&.*$/) {
46 $var_name = "($var_name)";
47 }
48
49 return "$var_name"."[$idx]";
50}
51
521;
Note: See TracBrowser for help on using the repository browser.