問題タブ [fslex]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
f# - FsLexYacc 空白インデント
FsLexYacc を使用して、Python のような空白のインデント (必要に応じてインデント/デデント トークンを発行) を実装しようとしています。
FsLexYacc は使用できないようですunput
。これは、空白ベースのインデントを字句解析するための C/C++ の例で使用されているものです。字句解析中に「インデント スタック」として追加の引数を使用しようとしましたが、字句ルールごとに複数のトークンを返すことができなかったため、ファイルの末尾にある保留中のすべての字下げ、または間に必要な複数の字下げを返すことができませんでした。
最初に完全な文字列をトークン化し、必要に応じて空白をインデント/デデントに置き換えるためにすべてのトークンに個別のパスを適用する必要なく、FsLexYacc に空白ベースのインデントを実装する方法はありますか? (LexBuffer<char> -> token)
(この可能な解決策でさえ、生成されたパーサーに署名を渡すことができるようにするために、署名を扱うのは難しいようです)
f# - F# でのインタープリター開発のために Visual Studio/JetBrains Rider をセットアップする方法は?
しばらくの間、インタープリター開発の学習を開始するために FsLexYacc パッケージなどを含めるように IDE (Visual Studio および JetBrains Rider) を構成する際に問題が発生しました。.fsproj ファイルに構成を追加する方法について、GitHub のこのガイドに従っていますが、認識されないタグ FsYacc の問題で VS 2017 がクラッシュしました。また、オンラインのテンプレートを探していましたが、利用できるものはありませんでした。おそらく、同じ問題を経験していて、解決策を見つけて助けてくれる人がいるでしょうか?
編集: .fsproj ファイルを更新するときに IDE がスローするエラー:
.net - コマンド ラインで、F# lexer をコンパイルして Mac OS で実行する方法は?
F# ソースをコンパイルして Mac OS で実行するためのコマンド ラインに関するドキュメントが見つかりません。これが私が試したものですが、うまくいきませんでした。
まず、レクサー仕様ファイル「ExprLex_hj.fsl」があります。Web サイトから取得した奇妙なコマンド ラインを使用してレクサーを生成しました。
上記の行により、「ExprLex_hj.fs」という名前のファイルが生成されます。次に、別のWebサイトからコピーした別の奇妙なコマンドラインでそのf#ファイルをコンパイルしました
上記のこの行により、私の Mac OS で EXE ファイルが生成されますExprLex_hj.exe
。次に、この EXE ファイルを実行する必要があります。Microsoft の .NET Framework のオープン ソース実装である mono で実現できると聞きました。だから、私は試しました
ブーム!エラーが発生しました:
未処理の例外: System.BadImageFormatException: 次の理由により、フィールド トークン 0x04000008 を解決できませんでした。 FsLexYacc.Runtime、Version=1.0.0.0、Culture=neutral、PublicKeyToken=null' またはその依存関係の 1 つ。アセンブリ:/Users/zell/test_lexer_fsharp/ExprLex_hj.exe タイプ:$ExprLex メンバー:(null)
この問題の解決方法を教えてください。問題は、F# ソース ファイルから生成された実行可能ファイルを実行する方法に関するドキュメントがほとんどないことです。ほとんどのチュートリアルでは、.FSX を使用するか、REPL で af# ファイルを実行することを提案していますが、これは私が望んでいるものではありません。生成されたバイナリをコマンド ラインから実行したいと考えています。
また、私のマシンには Visual Studio がインストールされていますが、コマンド ラインで EXE を実行する方法を知る必要があります。また、Visual Studio をインストールすると、PATH に「fshapri」、「fsharpc」、「mono」、「dotnet」が追加されました。この状況でEXEを実行するために「mono」と「dotnet」のどちらを使用する必要があるかは実際にはわかりません。