2

すぐに、Java 構文の強調表示を行うことになっている Haskell のプロジェクトを提示することを余儀なくされるでしょう。私はいくつかの調査を行い、Happy が解決策になる可能性があることがわかりました (yacc のようなパーサーであるため)。また、バイソンとパーセクについても言及されていました。私は Haskell が初めてなので、このプロジェクトを開始する方法がまったくわかりません。どんなヒントでも大いに役立ちます。

ありがとう!

4

4 に答える 4

2

alexで生成されたレクサーを使用したHaskellの効率的な構文強調表示ライブラリ-https ://github.com/jgm/illuminate

于 2012-05-28T13:32:35.137 に答える
2

私はHaskellが初めてなので、このプロジェクトを開始する方法がまったくわかりません

ああ、そこに本当の問題があります。Haskell の学習を開始するには、オンラインで無料で読めるLearn You a Haskellをよくお勧めします。私が推奨するその他の優れたリソースには、Real World Haskell (少し古くなっていますが、それでも十分です) やTypeclassopediaなどがあります。

パッケージの提案に対処するには、まずHaskell Platformをインストールする必要があります。次に、次のコマンドで特定のパッケージをインストールできます。

cabal install PACKAGE

ただし、Haskell は非常に速いペースで動いているため、一部のパッケージは互いに互換性がないことに注意してください。Cabal は、あまりにも愚かなことをしないようにする必要がありますが、パッケージ間の依存関係がめちゃくちゃになってしまった場合は、 #haskell irc チャンネルで助けを求めてください。パッケージの概要ページでその名前をクリックすると、特定のモジュールのドキュメントを表示できます。パッケージがhttp://hackage.haskell.orgにない場合は、所有者に連絡するか、irc でヘルプを求めてください。ドキュメントの生成とインストールを手伝ってくれます。

構文の強調表示アルゴリズムがどのように機能するかはわかりません。そのため、その部分は各自で調べてください。既存の作業を再利用することが許可されている場合は、 (Louis が提案したように) language-javaパッケージを使用して、生のテキストを解析して Java の抽象構文ツリーにし、その構文を変換するのはあなた次第です。作成する必要がある色付きの形式にツリーを変換します。

1 つのアプローチに多大な時間を費やす前に、このタスクを必要としている人に相談して、それが受け入れられるかどうかを確認する必要があります。

于 2012-06-13T22:24:51.017 に答える
1

Hackageをすばやく検索すると、が返されますlanguage-java。あなたはおそらくそのかわいいプリンターをどうにかして適応させることができます。

于 2012-05-28T13:21:09.373 に答える
1

libkate へのバインディングはどうですか?

于 2012-05-28T13:10:27.163 に答える