Blame lib/Autom4te/Request.pm

Packit Service 9646c7
# autoconf -- create `configure' using m4 macros
Packit Service 9646c7
# Copyright (C) 2001-2003, 2009-2012 Free Software Foundation, Inc.
Packit Service 9646c7
Packit Service 9646c7
# This program is free software: you can redistribute it and/or modify
Packit Service 9646c7
# it under the terms of the GNU General Public License as published by
Packit Service 9646c7
# the Free Software Foundation, either version 3 of the License, or
Packit Service 9646c7
# (at your option) any later version.
Packit Service 9646c7
Packit Service 9646c7
# This program is distributed in the hope that it will be useful,
Packit Service 9646c7
# but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit Service 9646c7
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit Service 9646c7
# GNU General Public License for more details.
Packit Service 9646c7
Packit Service 9646c7
# You should have received a copy of the GNU General Public License
Packit Service 9646c7
# along with this program.  If not, see <http://www.gnu.org/licenses/>.
Packit Service 9646c7
Packit Service 9646c7
package Autom4te::Request;
Packit Service 9646c7
Packit Service 9646c7
=head1 NAME
Packit Service 9646c7
Packit Service 9646c7
Autom4te::Request - a single m4 run request
Packit Service 9646c7
Packit Service 9646c7
=head1 SYNOPSIS
Packit Service 9646c7
Packit Service 9646c7
  use Autom4te::Request;
Packit Service 9646c7
Packit Service 9646c7
=head1 DESCRIPTION
Packit Service 9646c7
Packit Service 9646c7
This perl module provides various general purpose support functions
Packit Service 9646c7
used in several executables of the Autoconf and Automake packages.
Packit Service 9646c7
Packit Service 9646c7
=cut
Packit Service 9646c7
Packit Service 9646c7
use strict;
Packit Service 9646c7
use Class::Struct;
Packit Service 9646c7
use Carp;
Packit Service 9646c7
use Data::Dumper;
Packit Service 9646c7
Packit Service 9646c7
struct
Packit Service 9646c7
  (
Packit Service 9646c7
   # The key of the cache files.
Packit Service 9646c7
   'id' => "\$",
Packit Service 9646c7
   # True iff %MACRO contains all the macros we want to trace.
Packit Service 9646c7
   'valid' => "\$",
Packit Service 9646c7
   # The include path.
Packit Service 9646c7
   'path' => '@',
Packit Service 9646c7
   # The set of input files.
Packit Service 9646c7
   'input' => '@',
Packit Service 9646c7
   # The set of macros currently traced.
Packit Service 9646c7
   'macro' => '%',
Packit Service 9646c7
  );
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
# Serialize a request or all the current requests.
Packit Service 9646c7
sub marshall($)
Packit Service 9646c7
{
Packit Service 9646c7
  my ($caller) = @_;
Packit Service 9646c7
  my $res = '';
Packit Service 9646c7
Packit Service 9646c7
  # CALLER is an object: instance method.
Packit Service 9646c7
  my $marshall = Data::Dumper->new ([$caller]);
Packit Service 9646c7
  $marshall->Indent(2)->Terse(0);
Packit Service 9646c7
  $res = $marshall->Dump . "\n";
Packit Service 9646c7
Packit Service 9646c7
  return $res;
Packit Service 9646c7
}
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
# includes_p ($SELF, @MACRO)
Packit Service 9646c7
# --------------------------
Packit Service 9646c7
# Does this request covers all the @MACRO.
Packit Service 9646c7
sub includes_p
Packit Service 9646c7
{
Packit Service 9646c7
  my ($self, @macro) = @_;
Packit Service 9646c7
Packit Service 9646c7
  foreach (@macro)
Packit Service 9646c7
    {
Packit Service 9646c7
      return 0
Packit Service 9646c7
	if ! exists ${$self->macro}{$_};
Packit Service 9646c7
    }
Packit Service 9646c7
  return 1;
Packit Service 9646c7
}
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
=head1 SEE ALSO
Packit Service 9646c7
Packit Service 9646c7
L<Autom4te::C4che>
Packit Service 9646c7
Packit Service 9646c7
=head1 HISTORY
Packit Service 9646c7
Packit Service 9646c7
Written by Akim Demaille E<lt>F<akim@freefriends.org>E<gt>.
Packit Service 9646c7
Packit Service 9646c7
=cut
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
Packit Service 9646c7
1; # for require
Packit Service 9646c7
Packit Service 9646c7
### Setup "GNU" style for perl-mode and cperl-mode.
Packit Service 9646c7
## Local Variables:
Packit Service 9646c7
## perl-indent-level: 2
Packit Service 9646c7
## perl-continued-statement-offset: 2
Packit Service 9646c7
## perl-continued-brace-offset: 0
Packit Service 9646c7
## perl-brace-offset: 0
Packit Service 9646c7
## perl-brace-imaginary-offset: 0
Packit Service 9646c7
## perl-label-offset: -2
Packit Service 9646c7
## cperl-indent-level: 2
Packit Service 9646c7
## cperl-brace-offset: 0
Packit Service 9646c7
## cperl-continued-brace-offset: 0
Packit Service 9646c7
## cperl-label-offset: -2
Packit Service 9646c7
## cperl-extra-newline-before-brace: t
Packit Service 9646c7
## cperl-merge-trailing-else: nil
Packit Service 9646c7
## cperl-continued-statement-offset: 2
Packit Service 9646c7
## End: