簡単に使用できる、作曲、ヘッダーのみ、C ++ 11以降のコマンドライン引数パーサー。
| 得る | |
| ライセンス | |
| 基準 | |
| 統計 | |
| テスト |
Boost Softwareライセンスバージョン1.0の下で配布されます。 (添付ファイルライセンスを参照するか、http://www.boost.org/license_1_0.txtでコピー)
外部依存関係のないヘッダー( stdライブラリを除く)。
インターフェイスを一度定義して、冗長性のないコンバージョン、使用法の文字列を取得します。
作曲。各optまたはargは独立したパーサーです。これらを組み合わせて、複合パーサーを生成します。これは、複数の関数呼び出しで段階的に実行できます。
パーサーは、解析の結果を受け取る変数に直接バインドします。心配する中間辞書はありません。
または、より多くのカスタム処理をするために、パーサーをラムダにバインドすることもできます。
バインド変数またはラムダからタイプを推定し、 ostream <<でエラー処理を使用して、タイプ変換を実行します。
複数の値を持つ可能性のあるARGのベクトルにパーサーをバインドします。
例外ではなく、エラー伝播に結果タイプを使用します(例外を無効にしてもまだ構築されていませんが、後で来るでしょう)
モデルPOSIX標準は、短期および長いOPT動作のための標準です。
カスタマイズ可能なオプション構文。
arg -sのカーディナリティを1から多く指定します。
指定された値のセットにオプション値を制限します。
検出のためのコールバックを備えた再帰的議論グループ。これにより、簡単で一般的なサブコマンドの仕様が可能になります。
使用するには、 #include <lyra/lyra.hpp>だけです
このように、単一のオプションのパーサーを作成できます。
int width = 0 ;
auto cli = lyra::cli()
| lyra::opt( width, " width " )
[ " -w " ][ " --width " ]
( " How wide should it be? " );このパーサーをこのように直接使用できます。
auto result = cli.parse( { argc, argv } );
if ( !result )
{
std::cerr << " Error in command line: " << result. message () << std::endl;
exit ( 1 );
}
// Everything was ok, width will have a value if supplied on command line.例外はエラー処理には使用されていないことに注意してください。
|で構成することにより、パーサーを組み合わせることができます、 このような:
int width = 0 ;
std::string name;
bool doIt = false ;
std::string command;
auto cli
= lyra::opt( width, " width " )
[ " -w " ][ " --width " ]
( " How wide should it be? " )
| lyra::opt( name, " name " )
[ " -n " ][ " --name " ]
( " By what name should I be known " )
| lyra::opt( doIt )
[ " -d " ][ " --doit " ]
( " Do the thing " )
| lyra::arg( command, " command " )
( " which command to run " ); opt 、短いダッシュ( - )またはロングダッシュ( -- )で始まるオプションを指定します。オプションは引用することができます( -w 42など)。その場合、 opt 2番目の引数を取ります - ヒント、またはそれらは純粋なフラグ( -dなど)です。その場合、 optには1つの引数のみがあります。オプション名は1つ以上の角括弧のセットで提供され、括弧内に説明文字列を提供できます。 optの最初の引数はstd::ostreamを使用して文字列から変換できる任意のタイプの可変、ローカル、グローバルメンバーです。
arg 、オプションに結び付けられていない引数を指定しているため、正方形のブラケット名がありません。それ以外の場合は、 optのように機能します。
パーサーをストリームに挿入することにより、使用文字列を取得できます。使用文字列は、提供された情報から構築されます。
便利な場合、標準のヘルプオプション( -h 、 --helpおよび-? )は、バインドするためにブール値を必要とするhelpパーサーを使用して指定できます。
ソースファイルから生成されるシングルヘッダーバージョンがあります。 data/single_include/lyra/lyra.hppで見つけることができます。いくつかの注意事項:
ライブラリを使用する優先方法ではありません。
完全にテストされていません。
コンパイラエクスプローラーなどのユースケースを対象としています。即時の実験が可能な場合。
それに対するサポートは優先事項ではありません。
したがって、プロジェクトで通常のマルチファイルソースを使用することを好みます。
詳細とドキュメントについては、Webサイトを参照してください。