英語フランス語スペイン語

Ad


OnWorksファビコン

genparse - クラウドでオンライン

Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターを介して、OnWorks の無料ホスティング プロバイダーで genparse を実行します。

これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド genparse です。

プログラム:

NAME


genparse - コマンドラインパーサージェネレーター

SYNOPSIS


ゲンパース [オプション] ファイル...

DESCRIPTION


ゲンパース 汎用コマンド ライン パーサー ジェネレーターです。 シンプルで簡潔なものから
仕様ファイルでは、コマンド ライン パラメータとスイッチを定義できます。
あなたのプログラムに渡すことができるのが好きです。 Genparse は、C、C++、または Java コードを作成します。
あなたのためのパーサー。

Genparse は、GNU getopt_long(3) 関数は C ライブラリに組み込まれています。 為に
Java コンパイラに適切な jar ファイルを指定する必要がある場合があります。

OPTIONS


ゲンパース 次のオプションを受け入れます。

-c, --cppext
C++ ファイル拡張子。 (デフォルト = cc)

-d ログ記録をオンにします。

-f, --ログファイル
ログファイル名。 (デフォルト = genparse.log)

-h, - 助けて
ヘルプ情報を表示します。

-g, --gnulib
GNU 互換性ライブラリを使用します (Gnulib、 http://www.gnu.org/software/gnulib/).
C 出力でのみ使用できます。 さらにいくつかのタイプを許可します (unsigned long、intmax_t など)。
Gnulib は変換関数を提供します。

-i, -- 国際化
生成されたプログラムが
GNU gettext コマンドを使用して国際化できます。 現在は実装のみ
C出力用。

-l, - 言語 長い
出力言語。 C、C++、および Java のみがサポートされています。 次のいずれか
C++ を示します: 「c++」、「cpp」、「cc」、および「cxx」。 Java の場合: "java" または "Java"。
(デフォルト = c)

-o, --outfile
出力ファイル名。 (デフォルト = parse_cl)

-m, --ロングメンバー
パーサー クラス (構造体) のメンバーには長いオプションを使用します。 デフォルトは
長い表現しか定義されていない場合を除いて、短い表現を使用する
genparse ファイル内。 このオプションを設定すると、動作が元に戻ります。 の
短い表現しかない場合を除き、長い表現が使用されます
定義された。

-o, --outfile ファイル名
出力ファイルのルート名。 拡張子は出力言語によって決まります
そしておそらく他のオプションによって。 たとえば、出力言語が C の場合、
このオプションの引数が「file」の場合、出力ファイル名は「file.h」になります。
それぞれ、ヘッダー、パーサー、およびコールバック ファイルの「file.c」および「file_cb.c」。
デフォルト値は「parse_cl」です。

-p, --parsefunc ファンク
解析関数/クラスの名前。 このオプションを使用すると、ユーザーは名前を指定できます
実際のコマンドを実行する関数 (C の場合) またはクラス (C++ および Java の場合) の
行解析 (デフォルト = "Cmdline")。

-P, --多くの版画
個別の印刷コマンドで、すべてのコマンド ライン パラメータのヘルプ テキストを出力します。

-q, - 静かな
静かなモード - 画面出力なし。

-s, --静的ヘッダー
生成されたファイルの上にある説明的なヘッダーを静的に保ちます。 これがなければ
オプション genparse は、作成日時、Linux カーネル バージョン、カーネル ビルドを出力します
時間、コンピュータ アーキテクチャ名、ホスト名、およびユーザー名。

-v, - バージョン
出力バージョン。

-D, - ディレクトリ
結果を保存するディレクトリ。

入力 FILE


genparse 仕様ファイル (通常は単に「genparse ファイル」と呼ばれます) は、次の番号で構成されます。
次の形式の、コマンド ライン パラメータごとに XNUMX つのエントリ。

ショートネーム[*|!] [/ 長い名前[*|!][=オプト名]] type [ オプション ]

A 短い名前 XNUMX 文字 (小文字または大文字) または XNUMX 桁の数字です。 長い名前  
より長い (よりわかりやすい) オプション名。 コマンドラインでは、短い名前が前に付きます
単一のダッシュ (例: '-a') で、長いバージョンの前には XNUMX つのダッシュ (例:
' - 全て')。 長いパラメータ名が必要ない場合は、短い名前のみを指定できます
(スラッシュは必要ありません)。 long しかないパラメータを指定するには
ネームセット ショートネーム 〜へ NONEを. 複数の短いオプションを持つことが可能です。
設定例 短い名前 「aA」に 長い名前 「all」に指定すると、
コマンド ライン スイッチを '-a' または '-A' または '--all' として指定すると、それらはすべて同じことを行います。

A * After 短い名前 or 長い名前 引数をオプションにします。 これは、次の場合に指定できます。
ショートとロングのオプションを別々に。

A ! After 短い名前 or 長い名前 オプションをブール値にします。 これにより、
オプションまたは必須の引数を持つ長いオプションを持つブール型の短いオプション、または
ブール型の長いオプションと、オプションまたは必須の引数を持つ短いオプションを組み合わせます。
A ! オプションのタイプが フラグ.

type のいずれかである必要があります int型 フロート チャリオット 文字列 or フラグ. 最初の XNUMX つは self-
説明。 最後は、引数を取らない「スイッチ」オプションです。 C 出力の場合
--gnulib はコマンド ラインで設定され、さらに次のタイプが許可されます。 長い
(long int の場合)、 ウーロン (unsigned long int の場合)、 intmax (Gnulib で定義されている intmax_t の場合)、
単位最大 (uintmax_t の場合)、 .

以下 オプション がサポートされています。 それらは任意の順序で表示される場合があります。
説明 オプションごとに各フィールドを XNUMX つだけ定義できます。

A デフォルト パラメータのために。 文字列の場合、これは単純なデフォルトです
値、それが何であれ。 文字列の場合、中かっこ内にデフォルトを指定する必要があります。
{"my default value"} のように、空白を含めることができます。 チャーの場合
パラメータは、'a' や '\n' のように一重引用符で囲む必要があります。

A 範囲 括弧内の値の。 下限値と上限値は、
範囲指定子 ('...' または '..')。 高値または低値のいずれかである可能性があります。
片側のみに限定された範囲では省略されます。 パラメータがチェックされます
この範囲内であることを確認してください。

A 折り返し電話 function. この関数は、範囲チェックが行われた後に呼び出されます
行った。 より多くの有効性チェックを行うためのコールバックの目的
genparse ファイルで指定できるよりも複雑です。 たとえば、
入力が素数、特定の文字列であることを要求するプログラムを書く
長さなど

A 説明 二重引用符で囲みます。 によって印刷されます。 利用方法() 関数。 もし一つなら
行ごとに XNUMX つずつ、複数の説明を指定します。
それらを二重引用符で囲みます。 Genparseの1列目から記述が始まる場合
ファイルの 1 列目にも印刷されます。 利用方法() 機能。

A #gp_include ディレクティブは、別の genparse ファイルを含めるように genparse に指示します。
例えば #gp_include 別の.gp. インクルードではパラメーター定義のみが許可されます
ファイル、グローバル ディレクティブはありません。

An __ERR_MSG__(err_txt) 指令。 出力されるエラーメッセージを指定します
引数を変換できなかった場合。 例: __ERR_MSG__("%s: 無効
口論"). このメッセージは、変換関数のいずれかが実行されたときに出力されます。
失敗したか、引数が範囲外の場合。 XNUMXつ含まれていると仮定します %s その意志
変換できなかったアグルメントに置き換えられます。 のみ利用可能
Genparseはで呼び出されます --gnulib、それ以外の場合は無視されます。

オプションで、変換関数を XNUMX 番目の引数として追加できます。
__ERR_MSG__("%s: 無効 口論"、 引用符). これにより、エラーメッセージが表示されます
ような エラー (EXIT_FAILURE、 0, "%NS: 無効 口論"、 引用符 (オプティッド)).

An __フラグを追加__ 指令。 コマンド ライン パラメータが指定されていない場合にのみ意味があります。
すでにフラグです。この場合、追加のフラグ パラメータが追加されます。
コマンド ライン パラメータがコマンド ラインで指定された場合に設定されます。 このオプション
パラメータにオプションの引数がある場合、自動的に設定されます。

A __CODE__(ステートメント) 指令。 指定されたコードステートメントがコピーされます
文字通り。 例: __CODE__(printf ("パラメータ x ました 設定");). 指定されたコード
複数の行にまたがることができます。 Genparseにチャンスを与えるために
コードを適切にインデントします。スペースとタブのインデントを XNUMX つに混在させないでください __コード__
声明。

A __STORE_LONGINDEX__ 指令。 Genparse に interer 型フィールドを追加するように指示します。
longindex 変数に設定される結果クラス (最後の引数
@code{getopt_long()} への呼び出し)。 この新しいフィールドは、
結果フィールドに関連していますが、 _li 後置。

以下 全体的な ディレクティブ がサポートされています。 それらは任意の順序で表示されます。

An #include ディレクティブは、上記の include ステートメントをコピーするように genparse に指示します
genparse によって生成された C または C++ コードに含まれますが、ヘッダー ファイルやコールバックには含まれません。
ファイル。

A #必須 ディレクティブを使用すると、usage() 関数呼び出しがより適切になります。 それは可能です
スイッチに続く可能性のある必須のコマンド ライン パラメータを指定します。 ノート
Genparse は必須パラメータをチェックしないため、それらは
使用 () で機能します __必須__ 指令。 非推奨: 加えます 義務的な
パラメータ in   #利用方法 を代わりにお使いください。

An #exit_value エラーの場合の終了値を指定するディレクティブ。
デフォルトは EXIT_FAILURE です。

A #break_lines 行を分割する幅を指定するディレクティブ
ヘルプ画面で。 いいえ #break_lines ディレクティブが指定されている場合、行は
genparse ファイルに指定されているとおりに正確に出力されます。

If #no_struct が指定されている場合、構造体は定義されません。
生成されたパーサーのコマンド ライン パラメータ。 これは、次の場合に役立ちます。
独自のコードを追加したい __コード__ 代わりにステートメント。 C でのみサポート
出力。

A #export_long_options 指令。 もしも #export_long_options が定義されている場合
function #get_long_options() によって使用される longoptions 配列をエクスポートするものが追加されます
#getopt_long(). このディレクティブは、他の言語の C 出力でのみ使用できます。
それは無視されます。

A 全体的な 折り返し電話 function. この関数は、相互依存関係をチェックするのに役立ちます
パラメータ間。 相互依存性は各個人内ではチェックできません
コールバック関数は、これらの関数が呼び出される順序が異なるため、
コマンド ラインのパラメータの順序によって異なります。

Genparseも生成します 利用方法() に関するヘルプテキストを標準出力に出力する関数
Genparse がパーサーを生成するプログラムの使用状況。 それはによってカスタマイズすることができます
Genparse ファイルの下部に使用セクションを指定します。 そのようなセクションがない場合
デフォルトで指定されています

#usage_begin
使用法: __PROGRAM_NAME__ __OPTIONS_SHORT__ __MANDATORIES__
__用語集__
#usage_end

使用セクションは #usage_begin 終わりに #usage_end. 間のテキストは
次のキーワードを除いて、逐語的に印刷されます。これらのキーワードは、リストされているとおりに置き換えられます
以下:

__プログラム名__: プログラム名。 C および C++ では、プログラム名は
argv[0]。

__オプション_ショート__: [ -abc ] など、使用可能な短い形式のオプションのリスト。

__必須__: #mandatory で定義されたすべての必須パラメータのリスト
コマンド。 非推奨: リスト 義務的な パラメータ こちら 直接。

__用語集__: すべてのコマンド ライン オプションの説明。 これが情報です
人間が読める形式のパラメータ定義に与えられます。 それは含まれています
パラメータ タイプ、デフォルト、範囲、およびコメント。 を含む行
__用語集__ パラメータの用語集に置き換えられます。
同じ行は無視されます。

__用語集_GNU__: と同じ __用語集__ しかしGNUスタイルです。 オプションで、
説明テキストのインデントを指定する括弧内の整数 (例:
__用語集__(30))。 デフォルトのインデントは 24 です。

__STRING__さん: 文字列定数。C ではおそらく、
#define プリプロセッサ コマンド。 このマクロは、別のファイルからインポートできます。
genparse ファイルの include ディレクティブ。 Java 出力の生成時には無視されます。

__INT__(x): 整数定数。C では、おそらく整数マクロで定義されています。
#define プリプロセッサ コマンド。 このマクロは、別のファイルからインポートできます。
genparse ファイルの include ディレクティブ。 Java 出力の生成時には無視されます。

__CODE__(ステートメント): パラメータ オプションと同じです。上記を参照してください。

__DO_NOT_DOCUMENT__: このマクロを含む行は印刷されません。
利用方法() 関数。 なしでコマンドラインパラメーターを実装するために使用できます
ヘルプ画面にそれらをリストします。

__NL__:改行。 自動改行中に手動で改行するのに便利
オンになっています (参照 #break_lines)。 Java 出力の生成時には無視されます。

__NEW_PRINT__: アクティブな印刷コマンドを閉じて、新しい印刷コマンドを開始します。

__コメント__(テキスト): 使用法テキストを印刷するためのコード内でコメントします。

長いオプションの後に = 記号とオプションの指定を続けることができます オプト名 そのことができます
以下の説明で参照されます。 で使用されます。 利用方法() function
それだけ。 たとえば、次の genparse 行

s / block-size=SIZE int "SIZE バイト ブロックを使用"

ヘルプ画面で次の行につながります

[ -s ] [ --block-size=SIZE ] (type=INTEGER)
SIZE バイトのブロックを使用する

genparse スタイルで (__用語集__)または

-s, --block-size=SIZE SIZE バイトのブロックを使用

GNU スタイル (__用語集_GNU__).

示すために、オプションの名前を角括弧で囲むこともできます。
引数がオプションであること。 ただし、これは生成されたパーサーには意味がありません。 使用する
* 引数をオプションにするための接尾辞。

s* / block*[=SIZE] int "ブロックを使用します。"
「SIZE が指定されていない場合、サイズは 1kB になります。」

ヘルプ画面で次の行につながります

-s, --block[=SIZE] ブロックを使用します。
SIZE が指定されていない場合、サイズは 1kB になります。

実施例


サンプルの genparse ファイルを次に示します。

#含む

/* コメント */
my_callback()

i / 繰り返し int 100 [10...1000] iter_callback()
「実行する反復回数。」

/*
*コメント
*/

n / 名前文字列 {"mike"} name_cb() "ユーザー名"
s / str string "テスト文字列"
f フラグ "愚かなフラグ!"

#usage_begin
使用法: __PROGRAM_NAME__ __OPTIONS_SHORT__ ファイル名
これはただのばかげたテストプログラムです。
__用語集__
#usage_end

onworks.net サービスを使用してオンラインで genparse を使用する


無料のサーバーとワークステーション

Windows と Linux のアプリをダウンロード

Linuxコマンド

Ad