REDROOM
PHP 7.4.33
Path:
Logout
Edit File
Size: 5.37 KB
Close
/home/godevadmin/public_html/upload_images/home/000~ROOT~000/usr/share/automake-1.16/Automake/Location.pm
Text
Base64
# Copyright (C) 2002-2018 Free Software Foundation, Inc. # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # This program 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 General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program. If not, see <https://www.gnu.org/licenses/>. package Automake::Location; use 5.006; =head1 NAME Automake::Location - a class for location tracking, with a stack of contexts =head1 SYNOPSIS use Automake::Location; # Create a new Location object my $where = new Automake::Location "foo.c:13"; # Change the location $where->set ("foo.c:14"); # Get the location (without context). # Here this should print "foo.c:14" print $where->get, "\n"; # Push a context, and change the location $where->push_context ("included from here"); $where->set ("bar.h:1"); # Print the location and the stack of context (for debugging) print $where->dump; # This should display # bar.h:1: # foo.c:14: included from here # Get the contexts (list of [$location_string, $description]) for my $pair (reverse $where->contexts) { my ($loc, $descr) = @{$pair}; ... } # Pop a context, and reset the location to the previous context. $where->pop_context; # Clone a Location. Use this when storing the state of a location # that would otherwise be modified. my $where_copy = $where->clone; # Serialize a Location object (for passing through a thread queue, # for example) my @array = $where->serialize (); # De-serialize: recreate a Location object from a queue. my $where = new Automake::Location::deserialize ($queue); =head1 DESCRIPTION C<Location> objects are used to keep track of locations in Automake, and used to produce diagnostics. A C<Location> object is made of two parts: a location string, and a stack of contexts. For instance if C<VAR> is defined at line 1 in F<bar.h> which was included at line 14 in F<foo.c>, then the location string should be C<"bar.h:10"> and the context should be the pair (C<"foo.c:14">, C<"included from here">). Section I<SYNOPSIS> shows how to setup such a C<Location>, and access the location string or the stack of contexts. You can pass a C<Location> to C<Automake::Channels::msg>. =cut =head2 Methods =over =item C<$where = new Automake::Location ([$position])> Create and return a new Location object. =cut sub new ($;$) { my ($class, $position) = @_; my $self = { position => $position, contexts => [], }; bless $self, $class; return $self; } =item C<$location-E<gt>set ($position)> Change the location to be C<$position>. =cut sub set ($$) { my ($self, $position) = @_; $self->{'position'} = $position; } =item C<$location-E<gt>get> Get the location (without context). =cut sub get ($) { my ($self) = @_; return $self->{'position'}; } =item C<$location-E<gt>push_context ($context)> Push a context to the location. =cut sub push_context ($$) { my ($self, $context) = @_; push @{$self->{'contexts'}}, [$self->get, $context]; $self->set (undef); } =item C<$where = $location-E<gt>pop_context ($context)> Pop a context, and reset the location to the previous context. =cut sub pop_context ($) { my ($self) = @_; my $pair = pop @{$self->{'contexts'}}; $self->set ($pair->[0]); return @{$pair}; } =item C<@contexts = $location-E<gt>get_contexts> Return the array of contexts. =cut sub get_contexts ($) { my ($self) = @_; return @{$self->{'contexts'}}; } =item C<$location = $location-E<gt>clone> Clone a Location. Use this when storing the state of a location that would otherwise be modified. =cut sub clone ($) { my ($self) = @_; my $other = new Automake::Location ($self->get); my @contexts = $self->get_contexts; for my $pair (@contexts) { push @{$other->{'contexts'}}, [@{$pair}]; } return $other; } =item C<$res = $location-E<gt>dump> Print the location and the stack of context (for debugging). =cut sub dump ($) { my ($self) = @_; my $res = ($self->get || 'INTERNAL') . ":\n"; for my $pair (reverse $self->get_contexts) { $res .= $pair->[0] || 'INTERNAL'; $res .= ": $pair->[1]\n"; } return $res; } =item C<@array = $location-E<gt>serialize> Serialize a Location object (for passing through a thread queue, for example). =cut sub serialize ($) { my ($self) = @_; my @serial = (); push @serial, $self->get; my @contexts = $self->get_contexts; for my $pair (@contexts) { push @serial, @{$pair}; } push @serial, undef; return @serial; } =item C<new Automake::Location::deserialize ($queue)> De-serialize: recreate a Location object from a queue. =cut sub deserialize ($) { my ($queue) = @_; my $position = $queue->dequeue (); my $self = new Automake::Location $position; while (my $position = $queue->dequeue ()) { my $context = $queue->dequeue (); push @{$self->{'contexts'}}, [$position, $context]; } return $self; } =back =head1 SEE ALSO L<Automake::Channels> =head1 HISTORY Written by Alexandre Duret-Lutz E<lt>F<adl@gnu.org>E<gt>. =cut 1;
Save
Close
Exit & Reset
Text mode: syntax highlighting auto-detects file type.
Directory Contents
Dirs: 0 × Files: 21
Delete Selected
Select All
Select None
Sort:
Name
Size
Modified
Enable drag-to-move
Name
Size
Perms
Modified
Actions
ChannelDefs.pm
10.51 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Channels.pm
19.99 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Condition.pm
14.82 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Config.pm
1.46 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Configure_ac.pm
2.91 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
DisjConditions.pm
13.97 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
FileUtils.pm
8.89 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
General.pm
1.98 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Getopt.pm
2.24 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Item.pm
4.03 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
ItemDef.pm
1.93 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Language.pm
2.75 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Location.pm
5.37 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Options.pm
11.20 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Rule.pm
23.61 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
RuleDef.pm
2.23 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
VarDef.pm
8.36 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Variable.pm
44.90 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Version.pm
3.78 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Wrap.pm
3.65 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
XFile.pm
7.29 KB
lrw-r--r--
2023-10-14 20:00:43
Edit
Download
Rename
Chmod
Change Date
Delete
OK
Cancel
recursive
OK
Cancel
recursive
OK
Cancel
Zip Selected
If ZipArchive is unavailable, a
.tar
will be created (no compression).