diff options
Diffstat (limited to 'perl_checker.src/lexer.mll')
-rw-r--r-- | perl_checker.src/lexer.mll | 11 |
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; |