- my %default_data = (
- column => undef,
- starting_column => undef,
- matching_token => undef,
- starting_line => undef,
- ending_line => undef,
- saved_column => undef,
- serial_number => undef,
- );
-
- # class population count
- {
- my $_count = 0;
- sub get_count { return $_count }
- sub _increment_count { return ++$_count }
- sub _decrement_count { return --$_count }
- }
-
- # constructor
- sub new {
- my ( $caller, %arg ) = @_;
- my $caller_is_obj = ref($caller);
- my $class = $caller_is_obj || $caller;
- ##no strict "refs";
- my $self = bless {}, $class;
-
- foreach my $key ( keys %default_data ) {
- my $_key = '_' . $key;
- if ( exists $arg{$key} ) { $self->{$_key} = $arg{$key} }
- elsif ($caller_is_obj) { $self->{$_key} = $caller->{$_key} }
- else { $self->{$_key} = $default_data{$_key} }
- }
- $self->_increment_count();
- return $self;
- }
-
- sub DESTROY {
- my $self = shift;
- $self->_decrement_count();
- return;
- }
-
- sub get_column { my $self = shift; return $self->{_column} }
-
- sub get_starting_column {
- my $self = shift;
- return $self->{_starting_column};
- }
- sub get_matching_token { my $self = shift; return $self->{_matching_token} }
- sub get_starting_line { my $self = shift; return $self->{_starting_line} }
- sub get_ending_line { my $self = shift; return $self->{_ending_line} }
- sub get_serial_number { my $self = shift; return $self->{_serial_number} }
-
- sub set_column { my ( $self, $val ) = @_; $self->{_column} = $val; return }
-
- sub set_starting_column {
- my ( $self, $val ) = @_;
- $self->{_starting_column} = $val;
- return;
- }