在 OCaml 中使用 Arg.parse 验证参数

Verify parameters using Arg.parse in OCaml

现在我可以检查我是否传递了两个参数(都是迷宫高度和宽度的整数)并且我希望在它们之前分别添加标志 -r(用于行)和 -c(对于列)。

这是我目前的情况:

let usage = "[Usage]:\t./step -r height -c width"

let row = ref "-r"
let column = ref "-c"
let height = ref (-1)
let width = ref (-1)

let main () =
  begin
    Arg.parse [] (fun i ->
      if !height < 0
      then height := (int_of_string i)
      else width := (int_of_string i)) usage;
  end

let _ = main ()

即使在阅读了有关 Arg.parse 的文档后,我仍然无法弄清楚如何添加验证以将完整格式 (-r height -c width) 作为参数传递给我的可执行文件。

我正在学习 OCaml,如有任何帮助将不胜感激。

命令行界面的语法由 parse 函数的第一个参数指定。第二个参数是一个函数,它会为命令行上出现的每个匿名参数调用,即前面没有键的参数。这是示例:

Arg.parse Arg.[
  "-r", Set_int height, "<height> set height";
  "-c", Set_int width,  "<width>  set width";
] ignore usage