OCaml - 获取有关_Syntax error_是什么的提示

时间:2012-12-21 12:47:22

标签: syntax-error ocaml

我开始写一些OCaml,但我发现很难找到Syntax错误。我来自JavaScript,它会告诉我Unexpected token ***。但在这里,我得到的只是Syntax error ......

有没有办法获得更明确的信息?

提前感谢您的回答。

3 个答案:

答案 0 :(得分:3)

尝试camlp4o source.ml,它将使用不同的解析器解析代码,该解析器能够告诉每个输入点的预期结果。

答案 1 :(得分:3)

我在回复ygrek的回复中看到你的代码是http://pastebin.com/6c0sKFeh

此代码使用语法扩展来支持流解析器,这是一种几年前从核心语言中删除的语法糖。要按原样编译它,您应该将预处理器调用命令添加到编译行。而不是:

ocamlc -o foo ... foo.ml

使用

ocamlc -pp camlp4o -o foo ... foo.ml

camlp4o“只返回源代码”的原因是它正确解析了它,现在打印出后处理源。您还可以将此源存储在文件camlp4o foo.ml -o foo2.ml中,然后直接编译:{{1​​}}。

如果您的教材没有通知您应该使用处理器,那么它已经过时了。这是“使用Objective Caml开发应用程序”一书中的少数几个问题之一 - 这是我推荐阅读的一个很好的资源。

PS:下次,请立即发布您的源代码。

答案 2 :(得分:1)

您可以复制粘贴整个错误消息吗?它很可能包含一个非常精确的位置:文件名,行号,列号。并且需要在那里进行修正。

有时这个位置是一个块的结束,需要在块内进行修正。

此外,如果您可以将代码简化为最小的示例,则可以更轻松地提供帮助。