2 (* QUESTE FUNZIONI ORA NON VENGONO USATE, SONO STATE INSERITE NEI FILE DELLE
4 FUNZIONI CHE LE USANO!!!!*)
10 (* Data una lista di token restituisce la stringa formata da tutti i token *)
11 let rec token_to_str p =
15 let h = match head with
16 MQBC s -> Str.global_replace (Str.regexp "\.") "\\\\\." s
22 h ^ (patterneval tail)
28 (* data la lista dei token(fi) la trasforma in stringa aggiungendo la virgola
29 tra un token e l'altro *)
30 let rec fitoken_to_str p =
34 let h = match head with
35 MQBQ -> "[^/#]?" ^ ","
36 | MQBS -> "[^/#]*" ^ ","
37 | MQBSS -> "[^#]*" ^ ","
39 h ^ (patterneval tail)
50 (* Dato un path stringa restituisce la lista dei file contenuti a ogni livello
51 nella dir relativa al path *)
53 (*let rec entry_list aspattern dir =
55 if !contains(aspattern,'.')
57 let indir = opendir(aspattern) in
58 let ent = readdir(indir) in
59 if contains(ent, '.') (*se la entry e' un file*)
60 then [geturi(ent)] @ entry_list(readdir(indir), indir)
62 entry_list(ent, indir) (*se la entry e' una dir*)
65 [geturi(aspattern)] @ entry_list(readdir(dir), dir)*) (*se aspattern e' un file*)
69 (* FUNZIONE DI MATCHING: prende il descrittore del file delle uri e il path da
70 matchare formato stringa e restituisce la lista dei path che fanno match in
71 formato stringa !! TAIL-RECURSIVE !! *)
74 let rec aux inp path acc =
77 Some (Str.string_after (input_line(inp)) 61)
78 with End_of_file -> None
81 if Str.string_match (Str.regexp path) s 0
84 let p = (Str.match_end()-3)
86 aux inp path ((Str.string_before s p)::acc)
90 | None -> List.rev acc