我正在研究llvm OCaml绑定.
我通过opam(opam install llvm)安装了llvm包,当我在utop中使用llvm时,我收到以下错误:
#require "llvm";;
Error: The external function 'llvm_global_succ' is not available.
Run Code Online (Sandbox Code Playgroud)
opam llvm版本是3.2.
我也尝试从官方网站(./configure --with-ocaml-libdir='ocamlc -where')构建llvm3.3 ,构建成功(所有llvm命令行工具都正常工作),但我在utop中遇到了同样的错误.
我在Mac OS 10.7.5上.
ocamlmktop -o llvmtop llvm.cma -cc g++
然后启动llvmtop,之后可以使用llvm绑定open Llvm.
我还没有找到相应的utop...
utop正在工作!感谢此处的utop文档
创建一个myutop_main.ml文件:
let () = UTop_main.main ()
utop使用llvm绑定创建自定义:
ocamlfind ocamlmktop -o llvmutop -thread -linkpkg -package utop -package llvm myutop_main.ml -cc g++
在 OCaml 中,如何为正则表达式中的模式指定出现次数?我浏览了 Str 模块,但找不到{n}量词的等价物。
例如,如果我想指定一个“Year”模式,即恰好 4 位数字,除了这样做还有什么办法"[0-9][0-9][0-9][0-9]"吗?
谢谢。
我在使用OCaml开发应用程序时遵循此draw_string_in_box示例
给出的示例代码如下:
let draw_string_in_box pos str bcf col =
let (w, h) = Graphics.text_size str in
let ty = bcf.y + (bcf.h-h)/2 in
( match pos with
Center -> Graphics.moveto (bcf.x + (bcf.w-w)/2) ty
| Right -> let tx = bcf.x + bcf.w - w - bcf.bw - 1 in
Graphics.moveto tx ty
| Left -> let tx = bcf.x + bcf.bw + 1 in Graphics.moveto tx ty );
Graphics.set_color col;
Graphics.draw_string str;;
Run Code Online (Sandbox Code Playgroud)
如果我删除"匹配"部分周围的括号,代码将无法工作(没有任何内容被打印).知道为什么吗?
更一般地说,我应该何时将括号括在这样的代码位?
谢谢.