Grammar-Kit で生成された JFlex lexer Java ファイルが生成されるパスを変更するにはどうすればよいですか?
Grammar-Kit の issue trackerで質問しましたが、回答がありません。
レクサーが生成されたファイルのディレクトリに配置されないことにうんざりしています (他のすべての生成されたファイルと一緒に簡単に削除して、検索や IDE の警告などから除外することができます)。
Grammar-Kit で生成された JFlex lexer Java ファイルが生成されるパスを変更するにはどうすればよいですか?
Grammar-Kit の issue trackerで質問しましたが、回答がありません。
レクサーが生成されたファイルのディレクトリに配置されないことにうんざりしています (他のすべての生成されたファイルと一緒に簡単に削除して、検索や IDE の警告などから除外することができます)。
私も、レクサーが生成されたファイル ディレクトリに配置されないことにうんざりしていたので、プラグインのソース コードをざっと調べて答えを見つけました。
Grammar-Kit は独自のヒューリスティックを使用して、JFlex で生成されたレクサー ファイルを配置する場所を決定しますが、そのヒューリスティックは、どちらの場合も明らかに間違った選択をしています。
生成されたレクサーを生成されたフォルダーに入れたいのに、Grammar-Kit がそれを行わない場合、それは GK の設計方法により、.flex
ファイルをソース ルート内に置くことができないためです。もちろん、この.flex
ファイルは確かにソース ファイルですが、GK の目的のために、そのようにマークすることはできません — 正しいことを行い、生成された.java
ファイルを指定された生成フォルダーに入れたい場合はそうではありません[1]。
代わりに、.flex ファイルをソース フォルダーから移動し、ソース ディレクトリとしてマークされていないコンテンツ ルートに移動します。GK は現在、ほとんど適切に動作するはずです[1]。独自のソース ファイルである.bnf
ファイルの場合、この奇妙な動作はしません。.flex
ファイルのみ。
[1] : (実際、私のスキミングでは、「gen」という名前のフォルダーに移動するように特別にハードコーディングされているように見えたかもしれませんが、私はさっとスキミングしただけなので、正確ではない可能性があります。どちらの場合でも、生成生成されたフレックスレクサーは少なくとも通常のソースファイルと混同されないため、「gen」{ほとんどの人が生成されたフォルダーに選択する名前} という名前のフォルダーに入れるだけで十分です。)