我有一个interpreter.ml
文件,其中包含一个解释器和一些type
个定义。
我开发了一些测试电池来检查口译员是否运作良好。
当我在解释器的同一个文件中使用我用来测试解释器行为的函数时效果很好,但如果我尝试使用不同的文件进行测试(让我们说{{1它没有加载解释器函数和定义。
tests.ml
和interpreter.ml
位于同一文件夹
我在tests.ml
内部使用open Interpreter
和#use "./interpreter.ml"
进行了尝试,但它不会编译或关闭IDE中的警告(有点......我使用Visual MacOs上的工作室代码)
我已经尝试关注official documentation,但它不会使用tests.ml
答案 0 :(得分:0)
作为讨论的结果,通过编译2个文件test.ml
&获得可执行文件。 interpreter.ml
以正确的顺序test.ml
依赖于interpreter.ml
中定义的对象;因此test.ml
必须通过open Interpreter
条或者Interpreter
来引用解释器对象。通过使用 ocamlc -o exec interpreter.ml test.ml
)为所有相关项添加前缀:
ocamlbuild
ocamlbuild test.native
更容易,因为它自己解析依赖项:
以下命令:
e = Enumerator.new do |y| puts "Starting up the block!" (1..3).each {|i| y << i } puts "Exiting the block! (Not really)" (4..6).each {|i| y << i } puts "Exiting the block!" end
将生成可执行文件。