Ненулевая ошибка означает, что лексер вышел из строя, обычно он также описывает ошибку.Когда я компилирую, я получаю exited with code 1
вместе с этим:
Unexpected character '\'
let id = [\w'.']+
----------^
Lexer не любит символьные литералы вне кавычек, и он также не понимает значения \w
.Согласно исходному коду FsLex , FsLex понимает только следующие escape-последовательности:
let escape c =
match c with
| '\\' -> '\\'
| '\'' -> '\''
| 'n' -> '\n'
| 't' -> '\t'
| 'b' -> '\b'
| 'r' -> '\r'
| c -> c
Эта исправленная версия вашего лексера компилируется для меня хорошо: http://pastebin.com/QGNk3VKD