1

我的 FSLex 遇到了一些我无法解决的问题...我所知道的是 fslex.exe 以代码 1 退出...

顶部的 F# 代码在 F# Interactive 中进行了测试,因此不存在问题(我不知道如何解决)。

词法分析器:http : //pastebin.com/qnDnUh59

和 Parser.fsi: http ://pastebin.com/sGyLqZbN

谢谢,拉蒙。

4

1 回答 1

1

非零错误意味着词法分析器失败,通常它也会描述失败。当我编译时,我相处得exited with code 1很好:

Unexpected character '\'

let id = [\w'.']+ 
----------^

Lexer 不喜欢引号之外的 char 文字,而且它也不理解两者的含义\w。根据FsLex 源代码,FsLex 只理解以下转义序列:

let escape c =
 match c with
 | '\\' -> '\\'
 | '\'' -> '\''
 | 'n' -> '\n'
 | 't' -> '\t'
 | 'b' -> '\b'
 | 'r' -> '\r'
 | c -> c

这个固定版本的词法分析器对我来说编译得很好:http: //pastebin.com/QGNk3VKD

于 2010-09-06T16:18:39.780 回答