Perl-Tidy
view release on metacpan or search on metacpan
lib/Perl/Tidy/Tokenizer.pm view on Meta::CPAN
$is_my_our_state{$_} = 1 for @q;
# These tokens may precede a code block
# patched for SWITCH/CASE/CATCH. Actually these could be removed
# now and we could let the extended-syntax coding handle them.
# Added 'default' for Switch::Plain.
# Note: 'ADJUST' will be added by sub check_options if --use-feature=class
@q = qw(
BEGIN END CHECK INIT AUTOLOAD DESTROY
UNITCHECK continue if elsif else unless
do while until eval for foreach
map grep sort switch case given
when default catch try finally
);
$is_code_block_token{$_} = 1 for @q;
# These block types terminate statements and do not need a trailing
# semicolon; patched for SWITCH/CASE/; This may be updated in sub
# check_options.
@q = qw( } { BEGIN END CHECK INIT AUTOLOAD DESTROY UNITCHECK continue ;
if elsif else unless while until for foreach switch case given when );
$is_zero_continuation_block_type{$_} = 1 for @q;
# Note: this hash was formerly named '%is_not_zero_continuation_block_type'
# to contrast it with the block types in '%is_zero_continuation_block_type'
# Note: added 'sub' for anonymous sub blocks (c443)
@q = qw( sort map grep eval do sub );
$is_sort_map_grep_eval_do_sub{$_} = 1 for @q;
@q = qw( sort map grep );
$is_sort_map_grep{$_} = 1 for @q;
%is_grep_alias = ();
# I'll build the list of keywords incrementally
my @Keywords = ();
# keywords and tokens after which a value or pattern is expected,
# but not an operator. In other words, these should consume terms
# to their right, or at least they are not expected to be followed
# immediately by operators.
my @value_requestor = qw(
AUTOLOAD BEGIN CHECK DESTROY
END EQ GE GT
INIT LE LT NE
UNITCHECK abs accept alarm
and atan2 bind binmode
bless break caller chdir
chmod chomp chop chown
chr chroot close closedir
cmp connect continue cos
crypt dbmclose dbmopen defined
delete die dump each
else elsif eof eq
evalbytes exec exists exit
exp fc fcntl fileno
flock for foreach formline
ge getc getgrgid getgrnam
gethostbyaddr gethostbyname getnetbyaddr getnetbyname
getpeername getpgrp getpriority getprotobyname
getprotobynumber getpwnam getpwuid getservbyname
getservbyport getsockname getsockopt glob
gmtime goto grep gt
hex if index int
ioctl join keys kill
last lc lcfirst le
length link listen local
localtime lock log lstat
lt map mkdir msgctl
msgget msgrcv msgsnd my
ne next no not
oct open opendir or
ord our pack pipe
pop pos print printf
prototype push quotemeta rand
read readdir readlink readline
readpipe recv redo ref
rename require reset return
reverse rewinddir rindex rmdir
scalar seek seekdir select
semctl semget semop send
sethostent setnetent setpgrp setpriority
setprotoent setservent setsockopt shift
shmctl shmget shmread shmwrite
shutdown sin sleep socket
socketpair sort splice split
sprintf sqrt srand stat
state study substr symlink
syscall sysopen sysread sysseek
system syswrite tell telldir
tie tied truncate uc
ucfirst umask undef unless
unlink unpack unshift untie
until use utime values
vec waitpid warn while
write xor case catch
default err given isa
say switch when
);
# Note: 'ADJUST', 'field' are added by sub check_options
# if --use-feature=class
# patched above for SWITCH/CASE given/when err say
# 'err' is a fairly safe addition.
# Added 'default' for Switch::Plain. Note that we could also have
# a separate set of keywords to include if we see 'use Switch::Plain'
push( @Keywords, @value_requestor );
# These are treated the same but are not keywords:
my @extra_vr = qw( constant vars );
push( @value_requestor, @extra_vr );
$expecting_term_token{$_} = 1 for @value_requestor;
# this list contains keywords which do not look for arguments,
# so that they might be followed by an operator, or at least
# not a term.
my @operator_requestor = qw(
endgrent endhostent endnetent endprotoent
endpwent endservent fork getgrent
( run in 0.683 second using v1.01-cache-2.11-cpan-8f98c5d2c55 )