package Regex::State;
# Copyright (C) 2002-2007, The Perl Foundation.
# $Id: State.pm 21249 2007-09-13 06:33:24Z paultcochrane $
use strict;
use warnings;
sub new {
my ( $class, %options ) = @_;
my $self = bless {
_markers => {},
%options
},
ref($class) || $class;
return $self;
}
sub literal_label {
my ( $self, $label, $desc ) = @_;
$desc ||= '';
return bless {
name => 'LABEL',
label => $label,
},
'Regex::Ops::Label';
}
sub genlabel {
my ( $self, $desc ) = @_;
my $number = ++$self->{_markers}->{$desc};
$number = '' if ( $number == 1 ) && ( $desc ne '' );
return $self->literal_label( "\@$desc$number", $desc );
}
1;
# Local Variables:
# mode: cperl
# cperl-indent-level: 4
# fill-column: 100
# End:
# vim: expandtab shiftwidth=4:
syntax highlighted by Code2HTML, v. 0.9.1