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 に答える