diff options
author | Pascal Rigaux <pixel@mandriva.com> | 2003-04-15 21:20:00 +0000 |
---|---|---|
committer | Pascal Rigaux <pixel@mandriva.com> | 2003-04-15 21:20:00 +0000 |
commit | 293167fe02578bfc2d12e9b26ff0e5ca6e205dbe (patch) | |
tree | babdbe387c903a9e9a179f61935d601746a5a4b0 /perl_checker.src | |
parent | b11cd56179401e20be410ebf6a0e86a12322bed7 (diff) | |
download | perl-MDK-Common-293167fe02578bfc2d12e9b26ff0e5ca6e205dbe.tar perl-MDK-Common-293167fe02578bfc2d12e9b26ff0e5ca6e205dbe.tar.gz perl-MDK-Common-293167fe02578bfc2d12e9b26ff0e5ca6e205dbe.tar.bz2 perl-MDK-Common-293167fe02578bfc2d12e9b26ff0e5ca6e205dbe.tar.xz perl-MDK-Common-293167fe02578bfc2d12e9b26ff0e5ca6e205dbe.zip |
forbid "unless (...) { ... } else { ... }" and "unless (...) { ... } elsif (...) { ... }
Diffstat (limited to 'perl_checker.src')
-rw-r--r-- | perl_checker.src/parser.mly | 2 | ||||
-rw-r--r-- | perl_checker.src/parser_helper.ml | 4 | ||||
-rw-r--r-- | perl_checker.src/parser_helper.mli | 2 |
3 files changed, 7 insertions, 1 deletions
diff --git a/perl_checker.src/parser.mly b/perl_checker.src/parser.mly index f578f4d..0b27e80 100644 --- a/perl_checker.src/parser.mly +++ b/perl_checker.src/parser.mly @@ -117,7 +117,7 @@ line: if_then_else: /* Real conditional expressions */ | IF PAREN expr PAREN_END BRACKET lines BRACKET_END elsif else_ {sp_p($1); sp_n($2); sp_0($3); sp_0_or_cr($4); sp_p($5); mcontext_check M_scalar $3; check_block_sub $6 $7; to_Call_op (if $9.any = [] then M_none else mcontext_lmerge ($6.mcontext :: mcontext_lmaybe $8 @ [$9.mcontext])) "if" (prio_lo P_loose $3 :: Block $6.any :: $8.any @ $9.any) $1 $9} -| UNLESS PAREN expr PAREN_END BRACKET lines BRACKET_END elsif else_ {sp_p($1); sp_n($2); sp_0($3); sp_0_or_cr($4); sp_p($5); mcontext_check M_scalar $3; check_block_sub $6 $7; to_Call_op M_none "unless" (prio_lo P_loose $3 :: Block $6.any :: $8.any @ $9.any) $1 $9} +| UNLESS PAREN expr PAREN_END BRACKET lines BRACKET_END elsif else_ {sp_p($1); sp_n($2); sp_0($3); sp_0_or_cr($4); sp_p($5); mcontext_check M_scalar $3; check_block_sub $6 $7; check_unless_else $8 $9; to_Call_op M_none "unless" (prio_lo P_loose $3 :: Block $6.any :: $8.any @ $9.any) $1 $9} elsif: | {default_esp []} diff --git a/perl_checker.src/parser_helper.ml b/perl_checker.src/parser_helper.ml index d4c5842..0092a9f 100644 --- a/perl_checker.src/parser_helper.ml +++ b/perl_checker.src/parser_helper.ml @@ -466,6 +466,10 @@ let check_block_ref esp_lines esp_BRACKET_END = if esp_BRACKET_END.spaces <> Space_cr then (if l <> [] && last l = Semi_colon then warn_verb (get_pos_end esp_lines) "spurious \";\" before closing block") +let check_unless_else elsif else_ = + if elsif.any <> [] then warn elsif.pos "don't use \"elsif\" with \"unless\" (replace \"unless\" with \"if\")"; + if else_.any <> [] then warn else_.pos "don't use \"else\" with \"unless\" (replace \"unless\" with \"if\")" + let check_my_our_paren { any = ((comma_closed, _), _) } = if not comma_closed then die_rule "syntax error" diff --git a/perl_checker.src/parser_helper.mli b/perl_checker.src/parser_helper.mli index 9334d58..03d9af9 100644 --- a/perl_checker.src/parser_helper.mli +++ b/perl_checker.src/parser_helper.mli @@ -121,6 +121,8 @@ val check_block_sub : val check_block_ref : Types.fromparser list Types.any_spaces_pos -> 'a Types.any_spaces_pos -> unit +val check_unless_else : + 'a list Types.any_spaces_pos -> 'b list Types.any_spaces_pos -> unit val check_my_our_paren : ((bool * 'a) * 'b) Types.any_spaces_pos -> unit val check_simple_pattern : Types.fromparser list -> unit val only_one : Types.fromparser list Types.any_spaces_pos -> Types.fromparser |