summaryrefslogtreecommitdiffstats
path: root/perl_checker.src/lexer.mll
diff options
context:
space:
mode:
Diffstat (limited to 'perl_checker.src/lexer.mll')
-rw-r--r--perl_checker.src/lexer.mll11
1 files changed, 10 insertions, 1 deletions
diff --git a/perl_checker.src/lexer.mll b/perl_checker.src/lexer.mll
index cf93ee7..10c3dc7 100644
--- a/perl_checker.src/lexer.mll
+++ b/perl_checker.src/lexer.mll
@@ -399,13 +399,14 @@ let hex_in_string lexbuf next_rule s =
let set_delimit_char lexbuf op =
match lexeme_char lexbuf (String.length op) with
| '@' -> die lexbuf ("don't use " ^ op ^ "@...@, replace @ with / ! , or |")
+ | ':' -> die lexbuf ("don't use " ^ op ^ ":...:, replace : with / ! , or |")
| c -> delimit_char := c
}
let stash = [ '$' '@' '%' '&' '*' ]
let ident_start = ['a'-'z' 'A'-'Z' '_']
let ident = ident_start ['0'-'9' 'A'-'Z' 'a'-'z' '_'] *
-let pattern_separator = [ '/' '!' ',' '|' '@' ]
+let pattern_separator = [ '/' '!' ',' '|' '@' ':' ]
let in_string_expr = (ident | (ident? ("::" ident)+)) "->"? (('{' [^ '{' '}' '\n']* '}') | ('[' [^ '[' ']' '\n']* ']'))*
@@ -606,6 +607,14 @@ rule token = parse
QR_PATTERN(s, opts, pos)
}
+| "qw" pattern_separator {
+ set_delimit_char lexbuf "qw" ;
+ current_string_start_line := !current_file_current_line;
+ let s, pos = raw_ins delimited_string lexbuf in
+ warn_with_pos pos (Printf.sprintf "don't use qw%c...%c, use qw(...) instead" !delimit_char !delimit_char) ;
+ QUOTEWORDS(s, pos)
+}
+
| "s" pattern_separator {
set_delimit_char lexbuf "s" ;
current_string_start_line := !current_file_current_line;