标准ML语法错误:hello world程序上的非法令牌 - 不正确的SML安装?

时间:2013-11-16 01:05:30

标签: emacs sml smlnj sublimerepl

SML文件:“test.sml”

(* here is a comment *)
val x = 123;

我从这里安装了SMLNJ 110.76:http://www.smlnj.org/dist/working/110.76/,Emacs 24.3.1从这里安装:http://ftp.gnu.org/gnu/emacs/windows/emacs-24.3-bin-i386.zip,通过Emacs GUI安装Emacs的SML模式。

Emacs堆栈跟踪是这样的:

test.sml:1.2 Error: illegal token
test.sml:1.3 Error: illegal token
test.sml:1.5 Error: illegal token
test.sml:1.7 Error: illegal token
test.sml:1.9 Error: illegal token

依此类推,以:

结尾
uncaught exception Compile [Compile: "syntax error"]
raised at: ../compiler/Parse/main/smlfile.sml:15.24-15.46
           ../compiler/TopLevel/interact/evalloop.sml:44.55
           ../compiler/TopLevel/interact/evalloop.sml:296.17-296.20

我也通过Sublime Text 3尝试了与SML和sublimeREPL包相同的程序,如下所示:http://developerinmotion.wordpress.com/2013/02/07/sublime-text-2-and-sml/。但是我遇到了同样的问题:一长串非法令牌语法错误后面跟着:

C:\Program Files (x86)\SMLNJ\\bin\.run\run.x86-win32.exe: Fatal error -- Uncaught exception Compile with "syntax error" raised at ../compiler/Parse/main/smlfile.sml:15.24-15.46

有什么问题?我是否错误地安装了SMLNJ?

2 个答案:

答案 0 :(得分:0)

我将两行放在一个文件(test.sml)中,并在标准的SML REPL中打开。它正常编译:

- use "test.sml";
[opening test.sml]
val x = 123 : int
val it = () : unit

您似乎在设置工具时遇到了问题。

答案 1 :(得分:0)

使用UTF-8字符编码创建.sml文件可能会导致此问题。请改用ANSI。