-
Notifications
You must be signed in to change notification settings - Fork 576
/
Copy pathConstants.pm
55 lines (37 loc) · 1.56 KB
/
Constants.pm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package ExtUtils::ParseXS::Constants;
use strict;
use warnings;
use Symbol;
our $VERSION = '3.58';
=head1 NAME
ExtUtils::ParseXS::Constants - Initialization values for some globals
=head1 SYNOPSIS
use ExtUtils::ParseXS::Constants ();
$PrototypeRegexp = $ExtUtils::ParseXS::Constants::PrototypeRegexp;
=head1 DESCRIPTION
Initialization of certain non-subroutine variables in ExtUtils::ParseXS and some of its
supporting packages has been moved into this package so that those values can
be defined exactly once and then re-used in any package.
Nothing is exported. Use fully qualified variable names.
=cut
# Note that to reduce maintenance, $PrototypeRegexp is used
# by ExtUtils::Typemaps, too!
our $PrototypeRegexp = "[" . quotemeta('\$%&*@;[]_') . "]";
# These are all the line-based keywords which can appear in an XS file,
# except MODULE and TYPEMAP, which are handled specially by fetch_para()
# and are thus never seen by the parser.
# It also doesn't include non-line-based keywords such as
# IN_OUT, NO_INIT, NO_OUTPUT.
# This list is mainly used by the parser to delineate blocks (such as
# blocks of CODE or lines of INPUT).
our @XSKeywords = qw(
REQUIRE BOOT CASE PREINIT INPUT INIT CODE PPCODE
OUTPUT CLEANUP ALIAS ATTRS PROTOTYPES PROTOTYPE
VERSIONCHECK INCLUDE INCLUDE_COMMAND SCOPE INTERFACE
INTERFACE_MACRO C_ARGS POSTCALL OVERLOAD FALLBACK
EXPORT_XSUB_SYMBOLS
);
our $XSKeywordsAlternation = join('|', @XSKeywords);
# keywords which can appear anywhere within an XSUB.
our $generic_xsub_keywords_alt = 'ALIAS|ATTRS|OVERLOAD|PROTOTYPE';
1;