6

インデントベースの Python ライクな言語に FParsec を使用したいと考えています。

これは字句解析フェーズで行う必要があることは理解していますが、FParsec には字句解析フェーズがありません。FParsec を使用することは可能ですか? または、lexing 後にどのようにフィードできますか?

PD: F# は初めてですが、他の言語の経験があります。

4

1 に答える 1

9

はい、可能です。

これは、FParsec の作成者による関連記事です。このテーマについてさらに詳しく知りたい場合は、この論文を読む価値があります。この論文は、FParsec に影響を与えたパーサー コンビネーターである Parsec に基づいた、インデントを意識した解析用の複数のパッケージがあることを指摘しています。

FParsec には個別の字句解析フェーズはありませんが、代わりに字句解析と解析を単一のフェーズに融合します。IMO インデントを意識した解析は、パーサー ジェネレーター (fslex/fsyacc) よりもパーサー コンビネーター (FParsec) を使用する方が適切です。その理由は、現在のインデントを手動で追跡し、コンテキストに基づいて適切なエラー メッセージを報告する必要があるためです。

于 2014-11-27T08:33:37.003 に答える