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 54 55
|
(****************************************************************************)
(* the diy toolsuite *)
(* *)
(* Jade Alglave, University College London, UK. *)
(* Luc Maranget, INRIA Paris-Rocquencourt, France. *)
(* *)
(* Copyright 2015-present Institut National de Recherche en Informatique et *)
(* en Automatique and the authors. All rights reserved. *)
(* *)
(* This software is governed by the CeCILL-B license under French law and *)
(* abiding by the rules of distribution of free software. You can use, *)
(* modify and/ or redistribute the software under the terms of the CeCILL-B *)
(* license as circulated by CEA, CNRS and INRIA at the following URL *)
(* "http://www.cecill.info". We also give a copy in LICENSE.txt. *)
(****************************************************************************)
(* Find header files *)
{
open Printf
let verbose = false
}
rule main = parse
| ' '* '\n' { main lexbuf }
| "%{" { main lexbuf }
| "(*"|"/*" as lxm
{ if verbose then eprintf "%s" lxm ; inside false false lexbuf }
| "" { false }
and inside inria cecill = parse
| "CeCILL-B" as lxm
{ if verbose then eprintf "%s" lxm ; inside inria true lexbuf }
| ('i'|'I')('n'|'N')('r'|'R')('i'|'I')('a'|'A') as lxm
{ if verbose then eprintf "%s" lxm ; inside true cecill lexbuf }
| "*)"|"*/" as lxm { if verbose then eprintf "%s\n" lxm ; outside inria cecill lexbuf }
| _ as lxm { if verbose then eprintf "%c" lxm ; inside inria cecill lexbuf }
and outside inria cecill = parse
| ' '* '\n' { outside inria cecill lexbuf }
| "(*"|"/*" as lxm { if verbose then eprintf "%s" lxm ; inside inria cecill lexbuf }
| "" { inria && cecill }
{
let zyva chan = main (Lexing.from_channel chan)
let zyva fname = Misc.input_protect zyva fname
let () =
for i = 1 to Array.length Sys.argv-1 do
let fname = Sys.argv.(i) in
if not (zyva fname) then printf "%s\n" fname
done
}
|