Browse thread
Use Arg module to read keyword followed by unspecified number of arguments
[
Home
]
[ Index:
by date
|
by threads
]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
[ Message by date: previous | next ] [ Message in thread: previous | next ] [ Thread: previous | next ]
| Date: | -- (:) |
| From: | Till Varoquaux <till.varoquaux@g...> |
| Subject: | Re: [Caml-list] Use Arg module to read keyword followed by unspecified number of arguments |
Actualy I'd stick with double references... (yuck). From the top of my head:
let a=ref [];;
let b=ref [];;
let c=ref a;;
let p_list l=
List.iter (Printf.printf "\"%s\"") l;
print_newline ()
let _=
Arg.parse [("-switch",Arg.Unit (fun () -> c:=b),"")]
(fun s -> !c:=s::!(!c))
"blah";
p_list !a;
p_list !b
Note how c is a double reference...
Till
On 5/23/06, Michael Wohlwend <micha-1@fantasymail.de> wrote:
> On Tuesday 23 May 2006 19:17, mulhern wrote:
> > Hi!
> >
> > I expect to be reading something like this:
> >
> > -pred-files <arg1> <arg2> ... <argn> -key2 <arg> -extra-files <arg1>
> > <arg2> ... <argn> -key4
>
> I think the idea by Till to separate the args with commas is best, but if you
> don't want to do this, maybe something like that would be o.k. :
>
> let mode_pred = ref true;;
> let pred_files = ref [];;
> let extra_files = ref [];;
> let key2 = ref "";;
>
> Arg.parse [
> "-extra-files", Arg.Clear mode_pred, "extra files";
> "-key2", Arg.Set_string key2, "key2";
> "-pred-files", Arg.Set mode_pred, "pred files"
> ]
> (fun name -> if !mode_pred then
> pred_files := name :: !pred_files
> else
> extra_files := name :: !extra_files
> ) "usage..."
> ;;
>
>
> cheers,
> Michael
>
>
> --
> C offers you enough rope to hang yourself.
> C++ offers a fully equipped firing squad, a last cigarette and
> a blindfold.
>
> _______________________________________________
> Caml-list mailing list. Subscription management:
> http://yquem.inria.fr/cgi-bin/mailman/listinfo/caml-list
> Archives: http://caml.inria.fr
> Beginner's list: http://groups.yahoo.com/group/ocaml_beginners
> Bug reports: http://caml.inria.fr/bin/caml-bugs
>