問題タブ [optparse-applicative]
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.
haskell - optparse-applicative でネストされた/条件付きオプションを作成する方法は?
optparse-applicativeのメソッドを使用して、このようなプログラム オプションを解析する haskell 式を作成することは可能ですか?
-aと-bはオプションのフラグ ( を使用して実装) であり、 -aが前に入力された場合にのみ-bオプションが有効switch
であるという制約があります。
ありがとう
haskell - optparse-applicative バックトラッキング
引数の数に応じて異なるアクションを実行するプログラムでoptparse-applicativeライブラリを使用しようとしています。
たとえば、周長を計算するプログラムの引数解析:
の最初の引数のみが<|>
正常に解析されます。try
Parsec のコンビネータと同様に、ある種の引数バックトラッキングが必要だと思います。
最初の選択肢が次の選択肢のいくつかの引数を消費する可能性がある場合、引数の代替セットを解析する方法に関するアイデアはありますか?
haskell - フリー代替ファンクターから optparse-applicative パーサーを生成する
次の型シグネチャを検討してください。
ここで、 からの型Foo
への自然な変換を示します。optparse-applicative
Parser
(わかりました、それは少し役に立ちませんが、議論には役立ちます)。
今、私Bar
は自由な代替ファンクターであるとしFoo
ます:
これがフリー ファンクターであることを考えると、 からへmkParser
の自然な変換に移行できるはずです。Bar
Parser
そして確かに、これは機能し、私にParser
戻ってきます。ただし、それを多くのことをしようとすると無限ループになるため、これはかなり役に立たないものです。たとえば、それを説明しようとすると:
そして、中断されるまでハングアップします。
この理由は、 andの定義をoptparse-applicative
ごまかすためのようです: カバーの下でモナド構文解析を使用します。many
some
ここで何か間違ったことをしていますか?これを考えると、この方法でパーサーを構築する方法がわかりません。何か案は?
haskell - optparse-applicative: アロー構文で引数のない状況を処理する方法
例があります: https://github.com/pcapriotti/optparse-applicative/blob/master/tests/Examples/Cabal.hs#L46-L62
...
したがって、デフォルトでは、引数を使用しない場合、使用情報が表示されます。引数なしでケースを使用し、[カスタム引数] を 1 つ使用したい (カスタム引数を使用すると、エラーが発生しますInvalid argument 'regreg'
:)
ここで空のカスタム引数を処理するにはどうすればよいですか?
haskell - オプションのフラグを Maybe 値として解析する方法は?
optparse-applicativeを使用して a を解析しようとしてMaybe String
いますが、 を処理する方法がどこにも見つかりませんMaybe
。Nothing
私が見つけた唯一のことは、デフォルト値を追加することですが、ユーザーが代わりにオプションを提供しなかった場合は本当に必要です""
。これを達成する方法はありますか?
作業コードの例を次に示します。
ただし、パラメーターをオプションにして、 inMaybe String
の代わりに使用したいと思います。String
Config
haskell - 引数の数から決定されるプログラムモード [optparse-applicative]
引数の数からプログラムモードを決定します(フラグ/「サブパーサー」と「コマンド」なし)が、成功しません。
ghci セッション
:main abを使用すると、結果としてa: a および b: b のモード 2 が期待されます。
私は何を取りこぼしたか?ありがとう!
Main.hs
haskell - いくつかのパラメーターを持つ optparse-applicative オプションを使用することは可能ですか?
慎重に作成されたパーサーが、スローした文字列を解析できないことがわかりました。
どこROI = ROI Int Int Int Int
それが重要な場合は、上位のパーサーにネストされています
はOpts
適切な ADT です。
ここで、roi
パーサーが次のような式を解析すると仮定しまし--roi 1 2 3 4
たが、失敗しInvalid argument '128'
て使用法メッセージが表示されます。
--roi 1
代わりに解析しますが、返しますJust (ROI 1 1 1 1)
これを機能させる方法はありますか?
haskell - Option.Applicative: 結合されたパーサーをフラグで解析する方法は?
複雑なコマンド ライン オプションがあるため、
これらのサブ引数をフラグで解析したい:
私は既に持っています
??? には何を書けばいいですか?