ExtUtils::ParseXS::Utilities(3p) Perl Programmers Reference Guide

ExtUtils::ParseXS::Utilities(3p) Perl Programmers Reference Guide #

ExtUtils::ParseXS::Utilities(3p) Perl Programmers Reference Guide

NNAAMMEE #

 ExtUtils::ParseXS::Utilities - Subroutines used with ExtUtils::ParseXS

SSYYNNOOPPSSIISS #

   use ExtUtils::ParseXS::Utilities qw(
     standard_typemap_locations
     trim_whitespace
     C_string
     valid_proto_string
     process_typemaps
     map_type
     standard_XS_defs
     assign_func_args
     analyze_preprocessor_statements
     set_cond
     Warn
     blurt
     death
     check_conditional_preprocessor_statements
     escape_file_for_line_directive
     report_typemap_failure
   );

SSUUBBRROOUUTTIINNEESS #

 The following functions are not considered to be part of the public
 interface.  They are documented here for the benefit of future
 maintainers of this module.

“"ssttaannddaarrdd__ttyyppeemmaapp__llooccaattiioonnss(())“” • Purpose

     Provide a list of filepaths where _t_y_p_e_m_a_p files may be found.  The
     filepaths -- relative paths to files (not just directory paths) --
     appear in this list in lowest-to-highest priority.

     The highest priority is to look in the current directory.

       'typemap'

     The second and third highest priorities are to look in the parent of
     the current directory and a directory called _l_i_b_/_E_x_t_U_t_i_l_s underneath
     the parent directory.

       '../typemap',
       '../lib/ExtUtils/typemap',

     The fourth through ninth highest priorities are to look in the
     corresponding grandparent, great-grandparent and great-great-
     grandparent directories.

       '../../typemap',
       '../../lib/ExtUtils/typemap',
       '../../../typemap',
       '../../../lib/ExtUtils/typemap',
       '../../../../typemap',
       '../../../../lib/ExtUtils/typemap',

     The tenth and subsequent priorities are to look in directories named
     _E_x_t_U_t_i_l_s which are subdirectories of directories found in @INC --
     _p_r_o_v_i_d_e_d a file named _t_y_p_e_m_a_p actually exists in such a directory.
     Example:

       '/usr/local/lib/perl5/5.10.1/ExtUtils/typemap',

     However, these filepaths appear in the list returned by
     "standard_typemap_locations()" in reverse order, _i_._e_., lowest-to-
     highest.

       '/usr/local/lib/perl5/5.10.1/ExtUtils/typemap',
       '../../../../lib/ExtUtils/typemap',
       '../../../../typemap',
       '../../../lib/ExtUtils/typemap',
       '../../../typemap',
       '../../lib/ExtUtils/typemap',
       '../../typemap',
       '../lib/ExtUtils/typemap',
       '../typemap',
       'typemap'

 •   Arguments

       my @stl = standard_typemap_locations( \@INC );

     Reference to @INC.

 •   Return Value

     Array holding list of directories to be searched for _t_y_p_e_m_a_p files.

“"ttrriimm__wwhhiitteessppaaccee(())“” • Purpose

     Perform an in-place trimming of leading and trailing whitespace from
     the first argument provided to the function.

 •   Argument

       trim_whitespace($arg);

 •   Return Value

     None.  Remember:  this is an _i_n_-_p_l_a_c_e modification of the argument.

“"CC__ssttrriinngg(())“” • Purpose

     Escape backslashes ("\") in prototype strings.

 •   Arguments

           $ProtoThisXSUB = C_string($_);

     String needing escaping.

 •   Return Value

     Properly escaped string.

“"vvaalliidd__pprroottoo__ssttrriinngg(())“” • Purpose

     Validate prototype string.

 •   Arguments

     String needing checking.

 •   Return Value

     Upon success, returns the same string passed as argument.

     Upon failure, returns 0.

“"pprroocceessss__ttyyppeemmaappss(())“” • Purpose

     Process all typemap files.

 •   Arguments

       my $typemaps_object = process_typemaps( $args{typemap}, $pwd );

     List of two elements:  "typemap" element from %args; current working
     directory.

 •   Return Value

     Upon success, returns an ExtUtils::Typemaps object.

“"mmaapp__ttyyppee(())“” • Purpose

     Performs a mapping at several places inside "PARAGRAPH" loop.

 •   Arguments

       $type = map_type($self, $type, $varname);

     List of three arguments.

 •   Return Value

     String holding augmented version of second argument.

“"ssttaannddaarrdd__XXSS__ddeeffss(())“” • Purpose

     Writes to the ".c" output file certain preprocessor directives and
     function headers needed in all such files.

 •   Arguments

     None.

 •   Return Value

     Returns true.

“"aassssiiggnn__ffuunncc__aarrggss(())“” • Purpose

     Perform assignment to the "func_args" attribute.

 •   Arguments

       $string = assign_func_args($self, $argsref, $class);

     List of three elements.  Second is an array reference; third is a
     string.

 •   Return Value

     String.

“"aannaallyyzzee__pprreepprroocceessssoorr__ssttaatteemmeennttss(())“” • Purpose

     Within each function inside each Xsub, print to the _._c output file
     certain preprocessor statements.

 •   Arguments

           ( $self, $XSS_work_idx, $BootCode_ref ) =
             analyze_preprocessor_statements(
               $self, $statement, $XSS_work_idx, $BootCode_ref
             );

     List of four elements.

 •   Return Value

     Modifed values of three of the arguments passed to the function.  In
     particular, the "XSStack" and "InitFileCode" attributes are modified.

“"sseett__ccoonndd(())“” • Purpose

 •   Arguments

 •   Return Value

“"ccuurrrreenntt__lliinnee__nnuummbbeerr(())“” • Purpose

     Figures out the current line number in the XS file.

 •   Arguments

     $self

 •   Return Value

     The current line number.

“"WWaarrnn(())“” • Purpose

 •   Arguments

 •   Return Value

“"bblluurrtt(())“” • Purpose

 •   Arguments

 •   Return Value

“"ddeeaatthh(())“” • Purpose

 •   Arguments

 •   Return Value

“"cchheecckk__ccoonnddiittiioonnaall__pprreepprroocceessssoorr__ssttaatteemmeennttss(())“” • Purpose

 •   Arguments

 •   Return Value

“"eessccaappee__ffiillee__ffoorr__lliinnee__ddiirreeccttiivvee(())“” • Purpose

     Escapes a given code source name (typically a file name but can also
     be a command that was read from) so that double-quotes and
     backslashes are escaped.

 •   Arguments

     A string.

 •   Return Value

     A string with escapes for double-quotes and backslashes.

“"rreeppoorrtt__ttyyppeemmaapp__ffaaiilluurree"” • Purpose

     Do error reporting for missing typemaps.

 •   Arguments

     The "ExtUtils::ParseXS" object.

     An "ExtUtils::Typemaps" object.

     The string that represents the C type that was not found in the
     typemap.

     Optionally, the string "death" or "blurt" to choose whether the error
     is immediately fatal or not. Default: "blurt"

 •   Return Value

     Returns nothing. Depending on the arguments, this may call "death" or
     "blurt", the former of which is fatal.

perl v5.36.3 2023-02-15 ExtUtils::ParseXS::Utilities(3p)