summaryrefslogtreecommitdiffstats
path: root/perl_checker.src/lexer.mll
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2005-11-25 15:59:43 +0000
committerPascal Rigaux <pixel@mandriva.com>2005-11-25 15:59:43 +0000
commitdb77e78355a112fe4c55dce258775cefa48cffd2 (patch)
treebe9f85ed61eab7df76cbb6b437d2644737673c1d /perl_checker.src/lexer.mll
parentacd30220688c4ece7f7cdf372b094277dcac8677 (diff)
downloadperl-MDK-Common-db77e78355a112fe4c55dce258775cefa48cffd2.tar
perl-MDK-Common-db77e78355a112fe4c55dce258775cefa48cffd2.tar.gz
perl-MDK-Common-db77e78355a112fe4c55dce258775cefa48cffd2.tar.bz2
perl-MDK-Common-db77e78355a112fe4c55dce258775cefa48cffd2.tar.xz
perl-MDK-Common-db77e78355a112fe4c55dce258775cefa48cffd2.zip
- make <<"EOF" a warning, not an error (and adapt test for it)
- fix warning "Trailing spaces after HERE-document mark" (was on stderr)
Diffstat (limited to 'perl_checker.src/lexer.mll')
-rw-r--r--perl_checker.src/lexer.mll15
1 files changed, 9 insertions, 6 deletions
diff --git a/perl_checker.src/lexer.mll b/perl_checker.src/lexer.mll
index 7de0f13..389a179 100644
--- a/perl_checker.src/lexer.mll
+++ b/perl_checker.src/lexer.mll
@@ -677,16 +677,19 @@ rule token = parse
not_ok_for_match := lexeme_end lexbuf;
HERE_DOC(here_doc_next_line (skip_n_char 2 (lexeme lexbuf)), pos lexbuf)
}
+| "<<\"" ident "\"" {
+ warn_with_pos [Warn_suggest_simpler] (lexeme_start lexbuf + 2, lexeme_end lexbuf) "Don't use <<\"MARK\", use <<MARK instead" ;
+ not_ok_for_match := lexeme_end lexbuf;
+ HERE_DOC(here_doc_next_line (skip_n_char_ 3 1 (lexeme lexbuf)), pos lexbuf)
+ }
| "<<'" ident "'" {
not_ok_for_match := lexeme_end lexbuf;
RAW_HERE_DOC(raw_here_doc_next_line (skip_n_char_ 3 1 (lexeme lexbuf)), pos lexbuf)
}
| "<<" ' '+ "'"
-| "<<" ' '+ ident {
- failwith (pos2sfull_with (lexeme_start lexbuf + 2) (lexeme_end lexbuf) ^ "No space allowed between \"<<\" and the marker")
- }
+| "<<" ' '+ ident
| "<<" ' '* '"' {
- failwith (pos2sfull_with (lexeme_start lexbuf + 2) (lexeme_end lexbuf) ^ "Don't use <<\"MARK\", use <<MARK instead")
+ failwith (pos2sfull_with (lexeme_start lexbuf + 2) (lexeme_end lexbuf) ^ "No space allowed between \"<<\" and the marker")
}
| "\\"+ stash
@@ -880,7 +883,7 @@ and here_doc = parse
let s = lexeme lexbuf in
if chomps s <> !current_here_doc_mark
then next_s s here_doc lexbuf
- else if s <> !current_here_doc_mark then Printf.eprintf "%sTrailing spaces after HERE-document mark\n" (pos2sfull lexbuf)
+ else if s <> !current_here_doc_mark then warn_with_pos [Warn_traps] (pos lexbuf) "Trailing spaces after HERE-document mark"
}
| '\n' {
add_a_new_line(lexeme_end lexbuf);
@@ -893,7 +896,7 @@ and raw_here_doc = parse
let s = lexeme lexbuf in
if chomps s <> !current_here_doc_mark
then next_s s raw_here_doc lexbuf
- else if s <> !current_here_doc_mark then Printf.eprintf "%sTrailing spaces after HERE-document mark\n" (pos2sfull lexbuf)
+ else if s <> !current_here_doc_mark then warn_with_pos [Warn_traps] (pos lexbuf) "Trailing spaces after HERE-document mark"
}
| '\n' {
add_a_new_line(lexeme_end lexbuf);