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

Ad


OnWorksファビコン

m4posix - クラウド上のオンライン

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

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

プログラム:

NAME


m4 — マクロプロセッサ

SYNOPSIS


m4 [−s] [−d [=ヴァル]]... [−U ]... file...

DESCRIPTION


  m4 ユーティリティは、XNUMX つ以上のテキスト ファイルを読み取り、処理するマクロ プロセッサです。
含まれているマクロ ステートメントに従って、結果を標準出力に書き込みます。

OPTIONS


  m4 ユーティリティは、POSIX.1‐2008の基本定義ボリュームに準拠する必要があります。 セクション 12.2,
ユーティリティ 構文 ガイドライン、ただし、 −d & −U オプションは
重要であり、オプションにはオペランドを散在させることができます。

次のオプションがサポートされます。

−s の回線同期出力を有効にします。 c99 プリプロセッサフ​​ェーズ (つまり、
#ライン ディレクティブ)。

−d [=ヴァル]
定義する 〜へ ヴァル = の場合は null になりますヴァル 省略されます。

−U 未定義 .

オペランド


次のオペランドがサポートされます。

file 処理するテキスト ファイルのパス名。 いいえの場合 file 与えられている、または与えられている場合 '−',
標準入力が読み取られます。

標準入力


標準入力はテキスト ファイルであり、そうでない場合に使用されます。 file オペランドが指定されているか、または
is '−'.

入力 ファイル


によって名前が付けられた入力ファイル file オペランドはテキストファイルでなければなりません。

ENVIRONMENT 変数


次の環境変数は、の実行に影響を与えます。 m4:

言語 設定されていない、または設定されていない国際化変数のデフォルト値を指定します
ヌル。 (POSIX.1‐2008の基本定義ボリュームを参照してください。 セクション 8.2,
国際化 Variables 国際化の優先順位について
ロケールカテゴリの値を決定するために使用される変数。)

LC_ALL 空でない文字列値に設定されている場合は、他のすべての値を上書きします
国際化変数。

LC_CTYPE テキストデータのバイトシーケンスを解釈するためのロケールを決定します
文字として(たとえば、のマルチバイト文字ではなくシングルバイト
引数と入力ファイル)。

LC_MESSAGES
の形式と内容に影響を与えるために使用する必要があるロケールを決定します
標準エラーに書き込まれる診断メッセージ。

NLSパス の処理のためのメッセージカタログの場所を決定します LC_MESSAGES.

非同期 イベント


デフォルト。

標準出力


標準出力は、マクロ処理後の入力ファイルと同じになります。
拡張。

標準


標準エラーは、文字列を表示するために使用されます。 エラープリント マクロ、マクロ トレース
によって有効になります トレースオン マクロ、によって作成されたマクロの定義済みテキスト。 ダンプデフ マクロ、または
診断メッセージの場合。

出力 ファイル


なし。

拡張済み DESCRIPTION


  m4 ユーティリティは、入力からの各トークンを組み込みおよびトークンのセットと比較します。
ユーザー定義マクロ。 トークンがマクロの名前と一致する場合、トークンは次のようになります。
マクロの定義テキストがあれば、そのテキストで置き換えられ、一致するマクロ名がないか再スキャンされます。
トークンのどの部分もマクロの名前と一致しない場合、マクロは標準に書き込まれます。
出力。 マクロには引数を含めることができます。その場合、引数は次のように置き換えられます。
再スキャンされる前の定義テキスト。

マクロ呼び出しの形式は次のとおりです。

(arg1, arg2……、 引数)

マクロ名は文字、数字、アンダースコアで構成されます。最初の文字は
は数字ではありません。 この形式ではないトークンはマクロとして扱われません。

アプリケーションは、次のことを保証するものとします。 ~の名前のすぐ後に続く
マクロ。 マクロの名前に一致するトークンの後に
括弧>の場合、引数なしでそのマクロを使用したものとして扱われます。

マクロ名の後に、その引数は
- 間の分離されたトークンそしてマッチング
括弧>。 各引数の前にある引用符で囲まれていない空白文字は無視されます。
末尾の空白文字を含む他のすべての文字は保持されます。
で囲まれた文字と文字はそうではありません
引数を区切る。

引数は位置的に定義および参照されます。 文字列 「$ 1」 定義文の中で
は最初の引数に置き換えられます。 システムは少なくとも XNUMX つの引数をサポートしなければなりません。
文字列を使用して参照できるのは最初の XNUMX 個だけです 「$ 1」 〜へ 「$ 9」、包括的。 の
文字列 「$ 0」 はマクロの名前に置き換えられます。 文字列 「$#」 に置き換えられます
文字列としての引数の数。 文字列 「$*」 すべてのリストに置き換えられます。
で区切られた引数文字。 文字列 「$ @」 すべてのリストに置き換えられます
で区切られた引数の文字で構成され、各引数は
現在の左右の引用文字列。 文字列 「${」 不特定の動作を生成します。

マクロ定義よりも少ない引数が指定された場合、省略された引数は
null とみなされます。 指定された引数よりも多くの引数が指定されても、エラーにはなりません。
マクロ定義。

一致する左と右の間に囲まれた文字には特別な意味は与えられません。
文字列を引用しますが、引用文字列自体は破棄されます。 デフォルトでは、左側
引用文字列は、グレーブアクセント (逆引用符) と右側の引用文字列で構成されます。
アキュートアクセント (一重引用符) で構成されます。 も参照してください 変更見積もり マクロ。

コメントは書き込まれますが、マクロ名が一致するかどうかはスキャンされません。 デフォルトでは、begin-
コメント文字列は次で構成されます文字と終了コメント文字列は次のようになります。
の。 も参照してください。 チェンジコム & dnl マクロ。

  m4 ユーティリティは、次の組み込みマクロを利用できるようにします。 それらは再定義できます。
しかし、これが行われると、本来の意味は失われます。 それらの値は、次の場合を除いて null になります。
特に明記されていない場合。 以下の説明では、この用語は、 定義 클라우드 기반 AI/ML및 고성능 컴퓨팅을 통한 디지털 트윈의 기초 – Edward Hsu, Rescale CPO 많은 엔지니어링 중심 기업에게 클라우드는 R&D디지털 전환의 첫 단계일 뿐입니다. 클라우드 자원을 활용해 엔지니어링 팀의 제약을 해결하는 단계를 넘어, 시뮬레이션 운영을 통합하고 최적화하며, 궁극적으로는 모델 기반의 협업과 의사 결정을 지원하여 신제품을 결정할 때 데이터 기반 엔지니어링을 적용하고자 합니다. Rescale은 이러한 혁신을 돕기 위해 컴퓨팅 추천 엔진, 통합 데이터 패브릭, 메타데이터 관리 등을 개발하고 있습니다. 이번 자리를 빌려 비즈니스 경쟁력 제고를 위한 디지털 트윈 및 디지털 스레드 전략 개발 방법에 대한 인사이트를 나누고자 합니다. の値を指します
マクロ: の XNUMX 番目の引数 定義します マクロなど。 を除いて、
の最初の引数 評価する マクロでは、組み込みマクロへのすべての数値引数は次のようになります。
XNUMX 進数値として解釈されます。 の定義テキストとして生成される文字列値。
減価, ディヴナム, 増加, index, LEN, シスヴァル 組み込みマクロは次の形式でなければなりません。
C 言語で定義されている XNUMX 進定数。

チェンジコム   チェンジコム マクロはコメント開始文字列とコメント終了文字列を設定します。 なしで
引数を指定すると、コメントメカニズムは無効になります。 単一の非nullがある場合
引数の場合、その引数は begin-comment になり、 するだろう
終了コメント文字列になります。 XNUMX つの非 null 引数の場合、最初の引数は
コメント開始文字列になり、XNUMX 番目の引数が
終了コメント文字列。 いずれかの引数が指定された場合の動作は不定です
しかしヌル。 システムは、少なくとも XNUMX 文字のコメント文字列をサポートする必要があります。

変更見積もり
  変更見積もり マクロは引用開始文字列と引用終了文字列を設定します。 なしで
引数の場合、引用文字列はデフォルト値 (つまり `') に設定されます。
引数が XNUMX つある場合、またはいずれかの引数が指定されている場合の動作は不定です。
ヌル。 XNUMX つの非 null 引数の場合、最初の引数が begin-
引用文字列と XNUMX 番目の引数は引用終了文字列になります。 システム
少なくとも XNUMX 文字の引用文字列をサポートする必要があります。

減価 の定義テキストは、 減価 マクロは最初の引数から減算されたものになります。
1. 数値以外を含む引数の指定はエラーとなります。
文字。 次の場合の動作は不定です 減価 すぐに続くわけではありません
ある。

定義します XNUMX 番目の引数は、名前が次のマクロの定義テキストになります。
最初の引数。 かどうかは不明です。 定義します マクロは以前のものをすべて削除します
最初の引数で指定されたマクロの定義、またはマクロ以外のすべてを保持します。
マクロの現在の定義。 次の場合の動作は不定です 定義します ではありません
直後に。

定義 の定義テキストは、 定義 マクロは引用符で囲まれた定義になります (
現在の引用文字列) の引数。 次の場合の動作は不定です 定義
の直後に。

そらします   m4 ユーティリティは、1 から 9 までの番号が付けられた XNUMX つの一時バッファを維持します。
最後の入力が処理されると、配置された出力はすべて
これらのバッファ内のデータは、バッファ番号順に標準出力に書き込まれます。
  そらします マクロは、将来の出力をそのマクロで指定されたバッファに転送します。
口論。 引数を指定しないか、引数 0 を指定すると、通常の動作が再開されます。
出力プロセス。 負の数のストリームに転送される出力は、
捨てられた。 ストリーム番号が 9 より大きい場合の動作は実装定義です。
と指定されている。 そうでないものを含む引数を指定するとエラーになります。
数字。

ディヴナム の定義テキストは、 ディヴナム マクロは現在の出力の番号になります。
文字列としてストリームします。

dnl   dnl マクロが原因となる m4 までのすべての入力文字を破棄します。
次の。

ダンプデフ   ダンプデフ マクロは、定義されたテキストをそれぞれの標準エラーに書き込みます。
引数として指定されたマクロ、または引数が指定されていない場合はすべてのマクロ
マクロ。

エラープリント   エラープリント マクロはその引数を標準エラーに書き込みます。 その行動は、
不特定の場合 エラープリント の直後に。

評価する   評価する マクロは最初の引数を算術式として評価します。
少なくとも 32 ビット精度の符号付き整数演算を使用します。 少なくとも、
次の C 言語演算子が優先的にサポートされます。
で説明されている結合性と動作 セクション 1.1.2.1, 算術
精度 & 業務執行統括:

()
単項 +
単項 -
~

!
バイナリ *
/
%
バイナリ +
バイナリ-
<<
>>
<
<=
>
>=
==
!=
バイナリ &
^
|
&&
||

システムは、ISO C 標準と同様に XNUMX 進数と XNUMX 進数をサポートする必要があります。
XNUMX 番目の引数が指定されている場合、結果の基数を設定します。 もし
引数が空白または未指定の場合、デフォルトは 10 です。次の場合の動作は未指定です。
基数は 2 ~ 36 の範囲外です。 XNUMX 番目の引数の場合、
指定すると、結果の最小桁数が設定されます。 行動というのは、
XNUMX 番目の引数がゼロ未満の場合は指定されません。 それはエラーになります
数値以外の文字を含む XNUMX 番目または XNUMX 番目の引数を指定します。 の
場合の動作は未指定です 評価する の直後に
括弧>。

ifdef 最初の引数が ifdef マクロが定義されている場合、定義テキストは次のようになります。
XNUMX 番目の引数。 それ以外の場合、定義テキストは XNUMX 番目の引数になります。
指定されている場合は null 文字列、指定されていない場合は null 文字列。 次の場合の動作は不定です ifdef
の直後に。

もしそうなら   もしそうなら マクロは XNUMX つ以上の引数を取ります。 最初の XNUMX つの引数が
等しい文字列として比較 (両方の引数のマクロ展開後)、定義
text は XNUMX 番目の引数になります。 最初の XNUMX つの引数が次のように比較されない場合、
文字列が等しく、引数が XNUMX つある場合、定義テキストは null になります。 もしも
最初の XNUMX つの引数は等しい文字列として比較されず、XNUMX つまたは
引数が XNUMX つある場合、定義テキストは XNUMX 番目の引数になります。 最初の XNUMX つであれば、
引数が等しい文字列として比較されず、引数が XNUMX つ以上あり、
最初の XNUMX つの引数は破棄され、処理は次のように再開されます。
残りの引数。 次の場合の動作は不定です もしそうなら ではありません
直後に。

include の定義テキスト include マクロは、という名前のファイルの内容になります。
最初の引数によって。 ファイルが読み込めない場合はエラーとなります。 の
場合の動作は未指定です include の直後に
括弧>。

増加 の定義テキストは、 増加 マクロは最初の引数を増分した値になります。
1. 数値以外を含む引数の指定はエラーとなります。
文字。 次の場合の動作は不定です 増加 すぐに続くわけではありません
ある。

index の定義テキストは、 index マクロは最初の文字位置になります(
string) の最初の引数で、XNUMX 番目の引数に一致する文字列が始まる位置
(ゼロ原点)、または 1 番目の引数が発生しない場合は -XNUMX。 その行動は、
不特定の場合 index の直後に。

LEN の定義テキストは、 LEN マクロは(文字列としての)長さになります。
最初の引数。 次の場合の動作は不定です LEN すぐにフォローされない
によって。

m4終了 から出る m4 効用。 最初の引数が指定されている場合、それは出口です
コード。 デフォルトはゼロです。 引数指定はエラーとなります
数字以外の文字が含まれています。

m4wrap 最初の引数は、EOF に達したときに処理されます。 もし m4wrap マクロ
複数回使用される場合、指定された引数は次の順序で処理されます。
その中で m4wrap マクロが処理されました。 次の場合の動作は不定です m4wrap
の直後に。

仮の 定義テキストが最初の引数となり、末尾にテキストが続きます。 'NS' 文字
現在のプロセス ID に文字列として置き換えられます。 動作は不特定です
if 仮の の直後に。

ムクテンプ 最初の引数は、空のファイルを作成するためのテンプレートとして使用されます。
引きずります 'NS' 文字はポータブル ファイル名の文字に置き換えられます
キャラクターセット。 最初の引数が次で終わらない場合の動作は不定です。
少なくとも6 'NS' 文字。 一時ファイルが正常に作成されると、
マクロの定義テキストは、新しいファイルの名前になります。 ユーザーID
ファイルの は、プロセスの実効ユーザー ID に設定されます。 グループID
ファイルの親ディレクトリのグループ ID または
プロセスの実効グループ ID。 ファイルアクセス許可ビットが設定されている
つまり、所有者だけがファイルの読み取りと書き込みの両方を行うことができます。
現在 umask プロセスの。 ファイルを作成できなかった場合、定義テキスト
マクロの は空の文字列でなければなりません。 次の場合の動作は不定です ムクテンプ
の直後に。

ポップデフ   ポップデフ マクロは引数の現在の定義を削除し、置き換えます。
その定義を前の定義と合わせます。 事前の定義がない場合は、
マクロは未定義です。 次の場合の動作は不定です ポップデフ すぐではありません
続いて。

プッシュデフ   プッシュデフ マクロは、 定義します マクロ(例外あり)
を使用して将来の検索のために現在の定義を保存するものとします。
ポップデフ 大きい。 次の場合の動作は不定です プッシュデフ すぐにフォローされない
によって。

シフト の定義テキスト シフト マクロは、そのマクロのカンマ区切りのリストでなければなりません。
最初の引数以外の引数。 各引数は現在の引数を使用して引用符で囲まれます。
文字列を引用する。 次の場合の動作は不定です シフト すぐではありません
続いて。

含む   含む マクロは、 include マクロ、ただし、
ファイルにアクセスできない場合でもエラーにはなりません。 動作は不特定です
if 含む の直後に。

substr の定義テキスト substr マクロは最初の部分文字列でなければなりません
XNUMX 番目で指定されたゼロオフセットの文字位置から始まる引数
口論。 XNUMX 番目の引数が指定されている場合は、その文字数を指定します。
選択する; 指定しない場合、開始点から終了までの文字
最初の引数が定義テキストになります。 間違いではありません
最初の引数と定義の終わりを超えた開始点を指定します。
テキストはnullでなければなりません。 を含む引数を指定するとエラーになります。
数字以外の文字。 次の場合の動作は不定です substr ではありません
直後に。

システムコマンド   システムコマンド マクロは最初の引数をシェルコマンドラインとして解釈します。 の
定義テキストは、そのコマンドの文字列結果となります。 文字列の結果
定義テキストの設定中にマクロの再スキャンは行われません。 出力なし
リダイレクトは、 m4 効用。 からの終了ステータス値
コマンドは次のコマンドを使用して取得できます。 シスヴァル 大きい。 次の場合の動作は不定です
システムコマンド の直後に。

シスヴァル の定義テキストは、 シスヴァル マクロはユーティリティの終了値になります。
最後に呼び出されたのは、 システムコマンド マクロ (文字列として)。

トレースオン   トレースオン マクロは引数として指定されたマクロのトレースを有効にします。
または、引数が指定されていない場合は、すべてのマクロに対して。 トレース出力は次のようになります。
未指定の形式で標準エラーに書き込まれます。

トレースオフ   トレースオフ マクロは、引数として指定されたマクロのトレースを無効にします。
または、引数が指定されていない場合は、すべてのマクロに対して。

変換された の定義テキストは、 変換された マクロはすべての最初の引数になります。
XNUMX 番目の引数に出現する文字は、対応する文字に置き換えられます。
XNUMX 番目の引数の文字。 置換文字が指定されていない場合
XNUMX 番目の引数が XNUMX 番目の引数より長いため、何らかのソース文字が発生します
引数を指定した場合、その文字は最初の引数から削除されます。 変換された's
テキストの定義。 の場合の動作は不定です。 '−' 中にキャラクターが登場
最初または最後の文字以外の XNUMX 番目または XNUMX 番目の引数。 の
同じ文字が複数回出現する場合の動作は未指定です。
XNUMX 番目の引数。 次の場合の動作は不定です 変換された すぐではありません
続いて。

未定義   未定義 マクロはすべての定義 (を使用して保存された定義を含む) を削除します。
  プッシュデフ マクロ)、引数で指定されたマクロの名前。 その行動は、
不特定の場合 未定義 の直後に。

逆流させる   逆流させる マクロは、一時バッファ内のテキストを即座に出力します。
引数として指定するか、引数が指定されていない場合はすべての一時バッファーを指定します。
バッファは他の一時バッファに転用できません。 迂回を取り消すことは、
一時バッファの内容を破棄します。 の場合の動作は不定です。
引数には数字以外の文字が含まれています。

EXIT ステータス


次の終了値が返されます。

0正常に完了しました。

>0 エラーが発生しました

Status m4終了 マクロを使用する場合、入力ファイルで終了値を指定できます。

結果 OF エラー


デフォルト。

  フォロー中 セクション   有益です。

お申込み USAGE


  定義 マクロは、マクロ、特に組み込みの名前を変更するのに役立ちます。

Since 評価する ISO C 標準に準拠しているため、一部の操作には未定義の動作があります。 一部では
実装では、たとえ除算が行われたとしても、ゼロによる除算または剰余は致命的なシグナルを引き起こします。
の短絡した分岐で発生します。 「&&」 or "||"。 オーバーフローする操作
符号付き算術演算では未定義の動作が発生します。 同様に、 シフト を備えた演算子
正ではなく精度より小さいシフト量は未定義のままです
負の数を右にシフトします。 歴史的には、すべての実装が C- に従っていたわけではありません。
言語の優先規則: '〜' & 「!」 より低かった 「==」; 「==」 & '!=' 低くはなかった
より '<'、および '|' 以下ではなかった '^'; の寛大な使用 「()」 望むものを強制できる
これらの非準拠の実装でも優先されます。 さらに、いくつかの伝統的な
処理される実装 '^' ほとんどの実装では、べき乗演算子として使用されますが、
今使用する 「**」 この目的のための拡張として。

マクロが複数の方法で定義されている場合、 プッシュデフ マクロかどうかは不明です
  定義します マクロは最新の定義のみを変更します(まるで ポップデフ &
プッシュデフ)、または定義のスタック全体を XNUMX つの定義に置き換えます (まるで
by 未定義 & プッシュデフ)。 特定の動作を必要とするアプリケーション 定義します
この場合、マクロはそれに応じて再定義できます。

アプリケーションでは、 ムクテンプ 時代遅れのマクロの代わりに 仮の のマクロ
一時ファイルを作成しています。


ファイルの場合 m4src 次の行が含まれます。

  of 「ヴァー」 is 「ヴァー」。
ifdef(`VER', 「VER」 is 定義済みの 〜へ be バージョン、 VER is 定義されています。)
ifelse(VER, 1, 「VER」 is 「バージョン」。)
ifelse(VER, 2, 「VER」 is 「VER」。、 「VER」 is 2。)
end

次にコマンド

m4 m4src

またはコマンド:

m4 −U VER m4src

出力を生成します:

  of VER is 「ヴァー」。
VER is 定義された。

VERは2ではありません。
end

コマンド:

m4 −d VER m4src

出力を生成します:

  of VER is ""
VER is 定義済みの 〜へ be .

VERは2ではありません。
end

コマンド:

m4 −d VER=1 m4src

出力を生成します:

  of VER is 「1年XNUMX月XNUMX日」。
VER is 定義済みの 〜へ be 1.
VER is 1.
VER is 2.
end

コマンド:

m4 −d VER=2 m4src

出力を生成します:

  of VER is 「2年XNUMX月XNUMX日」。
VER is 定義済みの 〜へ be 2.

VERは2です。
end

理論的根拠


歴史的な System V ベースの動作の処理 「${」 マクロ定義では XNUMX つのリテラルとして
文字。 ただし、実装が提供できるように、この順序は未指定のままです。
などの拡張子 「${11}」 XNUMX 番目の位置パラメータを意味します。 マクロは引き続き使用できます
ネストされた引用符を適切に使用して定義され、リテラルになります。 「${」 出力内で
再スキャン後、ネストされた引用符が削除されます。

変換された 組み込まれた、歴史的な System V ベースの動作の処理 '−' リテラルとして; GNU
動作はそれを範囲として扱います。 このバージョンの標準では、どちらの動作も許可されます。

未来 道順


なし。

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


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

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

Linuxコマンド

Ad