3 role CatalystX::Declare::Context::StringParsing {
11 my $linestr = $self->get_linestr;
12 my $left = substr $linestr, $self->offset;
17 method strip_from_linestr (Int $chars) {
19 my $linestr = $self->get_linestr;
20 substr($linestr, $self->offset, $chars) = '';
21 $self->set_linestr($linestr);
26 my $left = $self->rest_of_line;
28 # only work on allowed types of string declarations
29 if ($left =~ /^"/ and my $num = Devel::Declare::toke_scan_str $self->offset) {
31 my $found = Devel::Declare::get_lex_stuff;
32 Devel::Declare::clear_lex_stuff;
34 $self->strip_from_linestr($num);
39 # check for a scalar version if nothing found
41 return $self->get_scalar;
47 my $left = $self->rest_of_line;
49 # only allow simple scalars
50 if ($left =~ s/^ ( \$ [a-z_] [a-z0-9_]* ) //ix) {
54 $self->strip_from_linestr( length $found );
59 # nothing suitable found