| # | |
| # Copyright 1999, 2000, 2001 Patrik Stridvall | |
| # | |
| # This library is free software; you can redistribute it and/or | |
| # modify it under the terms of the GNU Lesser General Public | |
| # License as published by the Free Software Foundation; either | |
| # version 2.1 of the License, or (at your option) any later version. | |
| # | |
| # This library is distributed in the hope that it will be useful, | |
| # but WITHOUT ANY WARRANTY; without even the implied warranty of | |
| # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
| # Lesser General Public License for more details. | |
| # | |
| # You should have received a copy of the GNU Lesser General Public | |
| # License along with this library; if not, write to the Free Software | |
| # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
| # | |
| package c_function; | |
| use strict; | |
| sub new($) { | |
| my $proto = shift; | |
| my $class = ref($proto) || $proto; | |
| my $self = {}; | |
| bless ($self, $class); | |
| return $self; | |
| } | |
| sub file($$) { | |
| my $self = shift; | |
| my $file = \${$self->{FILE}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$file = $_; } | |
| return $$file; | |
| } | |
| sub begin_line($$) { | |
| my $self = shift; | |
| my $begin_line = \${$self->{BEGIN_LINE}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$begin_line = $_; } | |
| return $$begin_line; | |
| } | |
| sub begin_column($$) { | |
| my $self = shift; | |
| my $begin_column = \${$self->{BEGIN_COLUMN}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$begin_column = $_; } | |
| return $$begin_column; | |
| } | |
| sub end_line($$) { | |
| my $self = shift; | |
| my $end_line = \${$self->{END_LINE}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$end_line = $_; } | |
| return $$end_line; | |
| } | |
| sub end_column($$) { | |
| my $self = shift; | |
| my $end_column = \${$self->{END_COLUMN}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$end_column = $_; } | |
| return $$end_column; | |
| } | |
| sub linkage($$) { | |
| my $self = shift; | |
| my $linkage = \${$self->{LINKAGE}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$linkage = $_; } | |
| return $$linkage; | |
| } | |
| sub return_type($$) { | |
| my $self = shift; | |
| my $return_type = \${$self->{RETURN_TYPE}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$return_type = $_; } | |
| return $$return_type; | |
| } | |
| sub calling_convention($$) { | |
| my $self = shift; | |
| my $calling_convention = \${$self->{CALLING_CONVENTION}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$calling_convention = $_; } | |
| return $$calling_convention; | |
| } | |
| sub name($$) { | |
| my $self = shift; | |
| my $name = \${$self->{NAME}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$name = $_; } | |
| return $$name; | |
| } | |
| sub argument_types($$) { | |
| my $self = shift; | |
| my $argument_types = \${$self->{ARGUMENT_TYPES}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$argument_types = $_; } | |
| return $$argument_types; | |
| } | |
| sub argument_names($$) { | |
| my $self = shift; | |
| my $argument_names = \${$self->{ARGUMENT_NAMES}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$argument_names = $_; } | |
| return $$argument_names; | |
| } | |
| sub statements_line($$) { | |
| my $self = shift; | |
| my $statements_line = \${$self->{STATEMENTS_LINE}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$statements_line = $_; } | |
| return $$statements_line; | |
| } | |
| sub statements_column($$) { | |
| my $self = shift; | |
| my $statements_column = \${$self->{STATEMENTS_COLUMN}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$statements_column = $_; } | |
| return $$statements_column; | |
| } | |
| sub statements($$) { | |
| my $self = shift; | |
| my $statements = \${$self->{STATEMENTS}}; | |
| local $_ = shift; | |
| if(defined($_)) { $$statements = $_; } | |
| return $$statements; | |
| } | |
| 1; |