summaryrefslogtreecommitdiffstats
path: root/perl_checker.src/tree.ml
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2004-11-17 16:53:50 +0000
committerPascal Rigaux <pixel@mandriva.com>2004-11-17 16:53:50 +0000
commitcab1e04c6458ab10cdb5ef03f125aee5668695ac (patch)
treef75e759b610f2cc47c0a90355edbb11d95aa2c56 /perl_checker.src/tree.ml
parentc01730aac021a10c13cdbaf99813b0869e045889 (diff)
downloadperl-MDK-Common-cab1e04c6458ab10cdb5ef03f125aee5668695ac.tar
perl-MDK-Common-cab1e04c6458ab10cdb5ef03f125aee5668695ac.tar.gz
perl-MDK-Common-cab1e04c6458ab10cdb5ef03f125aee5668695ac.tar.bz2
perl-MDK-Common-cab1e04c6458ab10cdb5ef03f125aee5668695ac.tar.xz
perl-MDK-Common-cab1e04c6458ab10cdb5ef03f125aee5668695ac.zip
create string_of_fromparser(), needs tuning
Diffstat (limited to 'perl_checker.src/tree.ml')
-rw-r--r--perl_checker.src/tree.ml28
1 files changed, 15 insertions, 13 deletions
diff --git a/perl_checker.src/tree.ml b/perl_checker.src/tree.ml
index dd62174..a4b5dfb 100644
--- a/perl_checker.src/tree.ml
+++ b/perl_checker.src/tree.ml
@@ -70,11 +70,11 @@ let get_current_package t =
| [] -> List.rev ((Some current_package, List.rev found_body) :: packages)
| Package(Ident _ as ident) :: body ->
let packages = (Some current_package, List.rev found_body) :: packages in
- bundled_packages packages (string_of_Ident ident) [] body
+ bundled_packages packages (string_of_fromparser ident) [] body
| instr :: body ->
bundled_packages packages current_package (instr :: found_body) body
in
- bundled_packages [] (string_of_Ident ident) [] body
+ bundled_packages [] (string_of_fromparser ident) [] body
| _ ->
if str_ends_with !Info.current_file ".pm" then warn_with_pos [Warn_normalized_expressions] (!Info.current_file, 0, 0) (sprintf "module %s does not have \"package xxxx;\" on its first line" (Info.absolute_file_to_file !Info.current_file)) ;
[ None, t ]
@@ -91,7 +91,7 @@ let from_qw_raw = function
some_or (l_option2option_l (List.map (function
| String([s, List []], pos)
| Raw_string(s, pos) -> Some(s, pos)
- | Ident(_, _, pos) as ident -> Some(string_of_Ident ident, pos)
+ | Ident(_, _, pos) as ident -> Some(string_of_fromparser ident, pos)
| e -> warn_with_pos [] (get_pos_from_expr e) "not recognised yet"; None
) l)) []
| e -> warn_with_pos [] (get_pos_from_expr e) "not recognised yet"; []
@@ -186,15 +186,17 @@ let get_uses t =
| Use(Ident(None, "lib", _), [libs]) ->
use_lib := List.map Info.file_to_absolute_file (List.map snd (from_qw libs)) @ !use_lib ;
uses
- | Use(Ident _ as pkg, _) when uses_external_package (string_of_Ident pkg) -> uses
- | Use(Ident(_, _, pos) as ident, l) ->
- let package = string_of_Ident ident in
- let para = match l with
- | [] -> None
- | [ Num(_, _) ] -> None (* don't care about the version number *)
- | _ -> Some(collect from_qw l)
- in
- (package, (para, pos)) :: uses
+ | Use(Ident(_, _, pos) as pkg, l) ->
+ let package = string_of_fromparser pkg in
+ if uses_external_package package then
+ uses
+ else
+ let para = match l with
+ | [] -> None
+ | [ Num(_, _) ] -> None (* don't care about the version number *)
+ | _ -> Some(collect from_qw l)
+ in
+ (package, (para, pos)) :: uses
| _ -> uses
) [] t
@@ -398,7 +400,7 @@ let get_global_info_from_package from_basedir require_name build_time t =
| Perl_checker_comment(s, pos) when str_begins_with "require " s ->
Some((skip_n_char 8 s, pos) :: l)
| Call(Deref(I_func, Ident (None, "require", pos)), [Ident _ as pkg]) ->
- let package = string_of_Ident pkg in
+ let package = string_of_fromparser pkg in
if uses_external_package package then None else Some((package, pos) :: l)
| Call(Deref(I_func, Ident (None, "require", pos)), [Raw_string(pkg, _)])
when not (String.contains pkg '/') && Filename.check_suffix pkg ".pm" ->