sub write_logfile_entry {
- my $msg = shift;
+ my ( $self, $msg ) = @_;
- my $logger_object = $tokenizer_self->[_logger_object_];
+ my $logger_object = $self->[_logger_object_];
if ($logger_object) {
$logger_object->write_logfile_entry($msg);
}
}
if ( $self->[_in_skipped_] ) {
- write_logfile_entry(
+ $self->write_logfile_entry(
"hit EOF while in lines skipped with --code-skipping\n");
}
# because this happens to often, and it is not likely to be
# a parsing error.
if ( $self->[_saw_data_] || $self->[_saw_end_] ) {
- write_logfile_entry(
+ $self->write_logfile_entry(
"hit eof while in pod documentation (no =cut seen)\n\tthis can cause trouble with some pod utilities\n"
);
}
unless ( $self->[_saw_perl_dash_w_] ) {
if ( $] < 5.006 ) {
- write_logfile_entry("Suggest including '-w parameter'\n");
+ $self->write_logfile_entry("Suggest including '-w parameter'\n");
}
else {
- write_logfile_entry("Suggest including 'use warnings;'\n");
+ $self->write_logfile_entry("Suggest including 'use warnings;'\n");
}
}
if ( $self->[_saw_perl_dash_P_] ) {
- write_logfile_entry("Use of -P parameter for defines is discouraged\n");
+ $self->write_logfile_entry(
+ "Use of -P parameter for defines is discouraged\n");
}
unless ( $self->[_saw_use_strict_] ) {
- write_logfile_entry("Suggest including 'use strict;'\n");
+ $self->write_logfile_entry("Suggest including 'use strict;'\n");
}
# it is suggested that labels have at least one upper case character
# for legibility and to avoid code breakage as new keywords are introduced
if ( $self->[_rlower_case_labels_at_] ) {
my @lower_case_labels_at = @{ $self->[_rlower_case_labels_at_] };
- write_logfile_entry(
+ $self->write_logfile_entry(
"Suggest using upper case characters in label(s)\n");
local $LIST_SEPARATOR = ')(';
- write_logfile_entry(" defined at line(s): (@lower_case_labels_at)\n");
+ $self->write_logfile_entry(
+ " defined at line(s): (@lower_case_labels_at)\n");
}
return $severe_error;
} ## end sub report_tokenization_errors
# write input line number + message to logfile
my $input_line_number = $self->[_last_line_number_];
- write_logfile_entry("Line $input_line_number: $msg");
+ $self->write_logfile_entry("Line $input_line_number: $msg");
return;
} ## end sub log_numbered_msg
last;
}
$msg = "Line $i implies starting-indentation-level = $starting_level\n";
- write_logfile_entry("$msg");
+ $self->write_logfile_entry("$msg");
}
$self->[_starting_level_] = $starting_level;
reset_indentation_level($starting_level);
# quick check
return unless ( $replacement_text =~ /<</ );
- write_logfile_entry("scanning replacement text for here-doc targets\n");
+ $self->write_logfile_entry(
+ "scanning replacement text for here-doc targets\n");
# save the logger object for error messages
my $logger_object = $self->[_logger_object_];
if ($msg) {
$self->write_diagnostics("DIVIDE:$msg\n");
- write_logfile_entry($msg);
+ $self->write_logfile_entry($msg);
}
}
else { $is_pattern = ( $expecting == TERM ) }
$self->guess_if_pattern_or_conditional( $i, $rtokens, $rtoken_map,
$max_token_index );
- if ($msg) { write_logfile_entry($msg) }
+ if ($msg) { $self->write_logfile_entry($msg) }
}
else { $is_pattern = ( $expecting == TERM ) }
)
)
{
- write_logfile_entry("AutoLoader seen, -nlal deactivates\n");
+ $self->write_logfile_entry("AutoLoader seen, -nlal deactivates\n");
$self->[_saw_autoloader_] = 1;
$self->[_look_for_autoloader_] = 0;
$self->scan_bare_identifier();
|| $input_line =~ /\bISA\s*=.*\bSelfLoader\b/ )
)
{
- write_logfile_entry("SelfLoader seen, -nlsl deactivates\n");
+ $self->write_logfile_entry("SelfLoader seen, -nlsl deactivates\n");
$self->[_saw_selfloader_] = 1;
$self->[_look_for_selfloader_] = 0;
$self->scan_bare_identifier();
$quoted_string_1,
$quoted_string_2,
- ) = do_quote(
+ ) = $self->do_quote(
$i,
$in_quote,
# example file: rokicki4.pl
# This error might also be triggered if my quote
# modifier characters are incomplete
- write_logfile_entry(
+ $self->write_logfile_entry(
"Note: found word $str at quote modifier location\n");
}
}
$quote_depth,
$quoted_string,
- ) = follow_quoted_string(
+ ) = $self->follow_quoted_string(
$ibeg,
$in_quote,
$i, $in_quote, $quote_character, $quote_pos, $quote_depth,
$quoted_string
)
- = follow_quoted_string( $ibeg, $in_quote, $rtokens, $quote_character,
- $quote_pos, $quote_depth, $max_token_index );
+ = $self->follow_quoted_string( $ibeg, $in_quote, $rtokens,
+ $quote_character, $quote_pos, $quote_depth, $max_token_index );
if ($in_quote) {
}
}
}
- write_logfile_entry($msg);
+ $self->write_logfile_entry($msg);
return $here_doc_expected;
} ## end sub guess_if_here_doc
#----------------------------------
sub do_id_scan_state_dollar {
+ my $self = shift;
+
# We saw a sigil, now looking to start a variable name
if ( $tok eq '$' ) {
}
else {
$i = $i_save;
- write_logfile_entry( 'Use of $# is deprecated' . "\n" );
+ $self->write_logfile_entry(
+ 'Use of $# is deprecated' . "\n" );
}
}
elsif ( $identifier eq '$$' ) {
sub do_id_scan_state_alpha {
+ my $self = shift;
+
# looking for alphanumeric after ::
$tok_is_blank = $tok =~ /^\s*$/;
sub do_id_scan_state_colon {
+ my $self = shift;
+
# looking for possible :: after alphanumeric
$tok_is_blank = $tok =~ /^\s*$/;
sub do_id_scan_state_left_paren {
+ my $self = shift;
+
# looking for possible '(' of a prototype
if ( $tok eq '(' ) { # got it
sub do_id_scan_state_right_paren {
+ my $self = shift;
+
# looking for a ')' of prototype to close a '('
$tok_is_blank = $tok =~ /^\s*$/;
sub do_id_scan_state_ampersand {
+ my $self = shift;
+
# Starting sub call after seeing an '&'
if ( $tok =~ /^[\$\w]/ ) { # alphanumeric ..
# which handles most identifiers.
(
- my $self,
-
- $i, $id_scan_state, $identifier, $rtokens, $max_token_index,
- $expecting, $container_type
+ my $self, $i, $id_scan_state, $identifier, $rtokens,
+ $max_token_index, $expecting, $container_type
) = @_;
# return flag telling caller to split the pretoken
$i++;
}
- $code->();
+ $code->($self);
# check for forward progress: a decrease in the index $i
# implies that scanning has finished
# See if we formed an identifier...
if ($identifier) {
$tok = $identifier;
- if ($message) { write_logfile_entry($message) }
+ if ($message) { $self->write_logfile_entry($message) }
}
# did not find an identifier, back up
else {
$self->write_diagnostics(
"ANGLE-Guessing yes: $str expecting=$expecting\n");
- write_logfile_entry("Guessing angle operator here: $str\n");
+ $self->write_logfile_entry(
+ "Guessing angle operator here: $str\n");
}
}
}
$i, $in_quote, $here_quote_character, $quote_pos, $quote_depth,
$quoted_string
)
- = follow_quoted_string( $i_next_nonblank, $in_quote, $rtokens,
+ = $self->follow_quoted_string( $i_next_nonblank, $in_quote, $rtokens,
$here_quote_character, $quote_pos, $quote_depth, $max_token_index );
if ($in_quote) { # didn't find end of quote, so no target found
elsif ( ( $next_token =~ /^\s*$/ ) and ( $expecting == TERM ) ) {
$found_target = 1;
- write_logfile_entry(
+ $self->write_logfile_entry(
"found blank here-target after <<; suggest using \"\"\n");
$i = $ibeg;
}
if ( $expecting == TERM ) {
$found_target = 1;
- write_logfile_entry("Note: bare here-doc operator <<\n");
+ $self->write_logfile_entry("Note: bare here-doc operator <<\n");
}
else {
$i = $ibeg;
# $quoted_string_2 = quoted string seen while in_quote=2
my (
+ $self,
$i,
$in_quote,
$quote_character,
$i, $in_quote, $quote_character, $quote_pos, $quote_depth,
$quoted_string
)
- = follow_quoted_string( $ibeg, $in_quote, $rtokens, $quote_character,
- $quote_pos, $quote_depth, $max_token_index );
+ = $self->follow_quoted_string( $ibeg, $in_quote, $rtokens,
+ $quote_character, $quote_pos, $quote_depth, $max_token_index );
$quoted_string_2 .= $quoted_string;
if ( $in_quote == 1 ) {
if ( $quote_character =~ /[\{\[\<\(]/ ) { $i++; }
$i, $in_quote, $quote_character, $quote_pos, $quote_depth,
$quoted_string
)
- = follow_quoted_string( $ibeg, $in_quote, $rtokens, $quote_character,
- $quote_pos, $quote_depth, $max_token_index );
+ = $self->follow_quoted_string( $ibeg, $in_quote, $rtokens,
+ $quote_character, $quote_pos, $quote_depth, $max_token_index );
$quoted_string_1 .= $quoted_string;
if ( $in_quote == 1 ) {
$quoted_string_1 .= "\n";
# $quoted_string = the text of the quote (without quotation tokens)
my (
+ $self,
$i_beg,
$in_quote,
$rtokens,
# Note this because it is not recommended practice except
# for obfuscated perl contests
if ( $in_quote == 1 ) {
- write_logfile_entry(
+ $self->write_logfile_entry(
"Note: alphanumeric quote delimiter ($beginning_tok) \n");
}