package pfff

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Source file test_analyze_js.ml

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
open Common

(*****************************************************************************)
(* Simple AST *)
(*****************************************************************************)
let test_parse_simple xs =
  let fullxs = Lib_parsing_js.find_source_files_of_dir_or_files xs in
  fullxs +> List.iter (fun file ->
    try 
      let cst = Parse_js.parse_program file in
      let _ast = Ast_js_build.program cst in
      ()
    with exn ->
      (match exn with
      | Ast_js_build.TodoConstruct (s, tok)
      | Ast_js_build.UnhandledConstruct (s, tok)
        -> 
        pr2 s;
        pr2 (Parse_info.error_message_info tok);

      | _ -> raise exn
      )
  )

let test_dump_ast file =
  try 
    let cst = Parse_js.parse_program file in
    let ast = Ast_js_build.program cst in
    let v = Meta_ast_js.vof_program ast in
    let s = Ocaml.string_of_v v in
    pr s
   with exn ->
      (match exn with
      | Lexer_js.Lexical_error (s, tok)
      | Ast_js_build.TodoConstruct (s, tok)
      | Ast_js_build.UnhandledConstruct (s, tok)
        -> 
        pr2 s;
        pr2 (Parse_info.error_message_info tok);
        raise exn
      | _ -> raise exn
      )

(*****************************************************************************)
(* Main entry for Arg *)
(*****************************************************************************)

let actions () = [
  "-parse_js_simple", "   <files or dirs>",
  Common.mk_action_n_arg test_parse_simple;
  "-dump_ast_js", "   <file>",
  Common.mk_action_1_arg test_dump_ast;
]
OCaml

Innovation. Community. Security.