これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、または MAC OS オンライン エミュレーターなどの複数の無料オンライン ワークステーションの XNUMX つを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド nountangle です。
プログラム:
NAME
notangle、noweave、nountangle - noweb、読み書き可能なプログラミング ツール
SYNOPSIS
角がない [-Rルート名 ...] [-フィルター 指図] [-L[フォーマット]] [ファイル] ...
名詞のもつれ [-ml|-m3|-c|-c++|-awk|-テックス|-f77|-f90|-舌足らずの発音|-MATLAB] [-Rルート名 ...] [-フィルター
指図] [-w幅] [ファイル] ...
ない [オプション] [ファイル] ...
DESCRIPTION
ノーウェブ Knuth のような読み書き可能なプログラミング ツールです ウェブ、 より単純なだけです。 あ ノーウェブ file
ドキュメントが挟まれたプログラムのソース コードが含まれています。 いつ 角がない 与えられます
ノーウェブ ファイルに書き込むと、プログラムが標準出力に書き込まれます。 いつ ない 与えられます ノーウェブ ファイル、
それは読みます ノーウェブ ソースを作成し、標準出力に生成します。 ラテックス, TeX, troffまたは HTML
タイプセットのドキュメントのソース。 名詞のもつれ 読み書き可能なプログラムを普通のプログラムに変換します
インターリーブされたドキュメントをコメントに変換することでプログラムを作成します。 ファイル名 `-' は次のことを指します
標準入力。
FORMAT OF ノーウェブ ファイル
A ノーウェブ ファイルは次のシーケンスです チャンク、任意の順序で表示されます。 チャンクには以下が含まれる場合があります
コードまたはドキュメント。 ドキュメントチャンクはアットマークで始まる行で始まります
(@) の後にスペースまたは改行を続けます。 彼らには名前がありません。 コードチャンクは次で始まります
<<チャンク 名>> =
単独の行にあります。 二重左山括弧 (<<) は最初の列になければなりません。
チャンクは、別のチャンクの先頭またはファイルの終わりによって終了します。 最初の場合
ファイル内の行はチャンクの始まりをマークしていません。最初の行であるとみなされます。
ドキュメントチャンクの行。
ドキュメントチャンクには、によって無視されるテキストが含まれています。 角がない そしてそのままコピーしました
による標準出力 ない (引用コードを除く)。 ない と連携できる ラテックス、 プレーン
TeX, troff or HTML。 無地付き TeXへの参照を挿入します。 TeX マクロパッケージ、 nwmac,
これは次のようなコマンドを定義します \章 と \セクション。
コード チャンクには、プログラムのソース コードと他のコード チャンクへの参照が含まれます。 いくつかのコード
チャンクは同じ名前を持つ場合があります。 角がない それらの定義を連結して単一の定義を生成します。
チャンクと同じように もつれ(1)。 コード チャンク定義はマクロ定義に似ています。
角がない XNUMX つのチャンクを展開してプログラムを抽出します (デフォルトでは、 <<*>>).
そのチャンクの定義には、それ自体が他のチャンクへの参照が含まれています。
拡張された、など。 角がないの出力は読み取り可能です。 インデントを保持します
展開されたチャンクを、そのチャンクが表示されるチャンクに対して比較します。
コードは、二重角括弧 ([[...]])
その周りに。 これらの二重角括弧は無視されます。 もつれない、 しかし、それらは次の人によって使用される可能性があります
ない コードに特別なタイポグラフィ処理 (ハイパーテキスト リンクなど) を与える。 引用した場合
コードは XNUMX つ以上の角かっこで終わっています。 ない 最も右のペアを選択するので、
例えば、 [[a[i]]] 正しく解析されます。 コードチャンクの名前は、
引用符で囲まれたコード自体がコード チャンクの名前の一部である場合を除きます。
コードでは、noweb はペアになっていない二重左山括弧または右山括弧をリテラルとして扱います。 << と >>.
このような括弧 (ドキュメント内の対の括弧や括弧であっても) を強制的に使用することは、
リテラルとして扱われる場合は、前にアットマークを使用します (例: @<).
一部のプログラミングまたはフォーマット言語では、単一の @ 最初の列に署名します。
ウェブ ユーザーは、二重の @@ 最初の列。 この中で
位置のみ、単一を表します @ 符号。
もつれ
角がない と 名詞のもつれ 一部のオプションには効果がありますが、同じオプションのセットを受け入れます
どちらか一方のみ。 オプションは次のとおりです。
-R名 拡大する <<名>> コードチャンク。 の -R オプションを繰り返すことができます。その場合、それぞれ
チャンクが出力に書き込まれます。 いいえの場合 -R オプションが指定されている場合は、という名前のチャンクを展開します
<<*>>.
-L形式でアーカイブしたプロジェクトを保存します.
チャンク境界で行番号表示を出力します。 行番号表示
これに続く行のソースを識別します。 の 形式でアーカイブしたプロジェクトを保存します., %F を示します
ソースファイルの名前、 %L ソースファイルの行番号を示します。 %N
は改行を示し、 %% はパーセント記号を示します。 符号と数字は次のとおりです。
パーセント記号と ` の間に挿入されますL'、この場合、行番号は
その金額で調整させていただきます。 もしも 形式でアーカイブしたプロジェクトを保存します. が省略された場合、デフォルトの形式は次のとおりです。
C プリプロセッサによって受け入れられます: `#ライン %L "%F"%N'。 を使用するときは、 -L形式でアーカイブしたプロジェクトを保存します. オプション、
角がない すべてのテキストが入力と出力で同じ列に表示されるようにします。
名詞のもつれ はこのオプションを無視します。
一般的なフォーマット文字列には次のものがあります。
C -L'#行 %L "%F"%N'
サンフォートラン -L'\# %L "%F"%N'
アイコン -L'#行 %-1L "%F"%N'
Modula-xnumx -L'<*LINE %L 「%F」 *>%N'
SML / NJ -L'(*#行 %L "%F"*)'
逆の問題を解決するには、つまり、noweb に賢明な処理を実行させるには、
#ライン その入力で、を参照してください。 シャープライン サンプルディレクトリ内のフィルタ。
-tk 入力から出力にタブをそのままコピーし、インデントにタブを使用します。
毎に停止します k 列。 デフォルトでは、タブは 8 つごとにストップするスペースに展開されます。
列。
-フィルター CMD
フィルタリング ノーウェブ ソーススルー CMD ツール形式に変換後と変換前
もつれ。 角がない 探す CMD まずユーザー側で パス、次に /usr/lib/noweb.
このようなフィルターは、機能を追加するために使用できます。 角がない; 例については、を参照してください
/usr/lib/noweb/emptydefn。 専門家のみを対象としています。
-マークアップ パーサー
パーサー 入力ファイルを解析します。 他のファイルに noweb ツールを使用できるようにします。
フォーマット。 たとえば、 数値マークアップ パーサーは理解します ニューウェブ(1)フォーマット。 見る
ウェブフィルタなし詳細については (7) を参照してください。 専門家のみを対象としています。
-awk | -c | -icn | -アイコン | -ml | -m3 | -パスカル | -f77 | -f90 | -テックス
日時 名詞のもつれ ドキュメントのチャンクをコメントに変換します。コメントを使用します。
名前付きの言語の形式。 -c デフォルトです。 角がない これらのオプションは無視されます。
-wn 日時 名詞のもつれ ドキュメントのチャンクをコメントに変換し、コメントを作成します
幅の線 n. 角がない はこのオプションを無視します。
織る
からの出力 ない で使用できます TeX という文書 \入力 nwmac、 in ラテックス ドキュメント
それを使用する ノーウェブ パッケージ(を参照) ノーウェブスタイル(1))、および HTML 閲覧する書類
Mosaicとします。 ノーウィーブ コードチャンクを次のように扱います ラテックス リスト 環境。 「@
コードチャンクを終了する '' の直後にテキストが続き、そのテキストは
段落区切りのないコードチャンク。 行の残りが空白の場合、 ない 置く TeX
「縦書きモード」にすると、その後のテキストは新しいインデントされた段落で始まります。
オーバーフルを避けるために必要な場合を除き、コードチャンクの途中で改ページは発生しません。
ヴボックス。 コード チャンクの直前のドキュメント チャンクが同じページに表示されます
前のルールに違反しない限り、そのコード チャンクとして保存されます。
ノーウィーブ 余分な改行は挿入しません TeX 出力されるため、次の行番号が表示されます。 TeX
エラー メッセージは入力ファイルのものと同じです。
ない フォーマッタの選択を指示し、さまざまなフォーマットをサポートするオプションがあります
イディオムとツール。 ここでは基本的なオプションについて説明します。 インデックスとクロスに関連するオプション
参照情報については、「インデックスと相互参照」セクションで説明されています。
-ラテックス ラッパーを含む LaTeX を出力します。 記事 とのスタイル ノーウェブ パッケージとページ
スタイル。 (デフォルト)
-テックス ラッパーを含むプレーン TeX を出力します。 nwmac マクロ。
-html HTML ラッパーを使用して HTML を出力します。 出力がなければ面白くありません。 -インデックス or -x.
タグ と 、単独の行で、次のリストを生成します。
それぞれチャンクと識別子のインデックス。 これらのタグが存在しない場合は、
リストとインデックスはファイルの最後に配置されます。
-ラテックス+html
ドキュメントのチャンクは LaTeX であると仮定しますが、コード チャンクの HTML を適切に生成します。
そうマークされた変換 ラテックス2html(1) 妥当な出力が得られます。 LaTeXラッパー
は暗黙的に示されていますが、次のようにしてオフにすることができます -n. of この オプション is 廃止されました。 つかいます
-html -フィルター 2h を代わりにお使いください。
-トロフ 発します troff(1) マークアップ (ラッパーなし)。 結果は次のように処理する必要があります
ノロフ(1)。 のバグレポート -トロフ エイハロン・ロビンスに <[メール保護]>.
-n ラッパー (ヘッダーまたはトレーラー) は使用しないでください。 このオプションは次の場合に役立ちます。 ない's
出力は、より大きなドキュメントの一部になります。 こちらも参照 -遅れ。
-フィルター CMD
フィルタリングします ノーウェブ ソーススルー CMD ツール形式に変換後と変換前
に変換する テックス。 ない 探す CMD まずユーザー側で 道、 その後、
/usr/lib/noweb. このようなフィルターは、機能を追加するために使用できます。 ない; のために
例を参照してください /usr/lib/noweb/noxref.krom。 ノーウィーブ 最大 XNUMX つのフィルターをサポートします。 一
たとえば、シェルの策略によってさらに多くの情報を得ることができます。 -フィルター 「アイコン.フィルター」 | ノイドックス」を選択します。
-自動定義, -x, -インデックス, -indexfrom オプションはフィルターとして実装されます。 フィルター
シェルで実行されます 評価する コマンド、それで CMD それに応じて引用する必要があります。
-マークアップ パーサー
パーサー 入力ファイルを解析します。 他のファイルに noweb ツールを使用できるようにします。
フォーマット。 たとえば、 数値マークアップ パーサーは理解します ニューウェブ(1)フォーマット。 見る
ウェブフィルタなし詳細については (7) を参照してください。 専門家のみを対象としています。
-オプション オプト
追加 \nowebオプション{オプト} から ラテックス ヘッダ。 見る ノーウェブスタイル(1) の値について OPT。
通常は、 -ラテックス オプションですが、 -オプション 長い外部参照 黒魔術が効く
-html。
-遅れ デフォルトでは、 ない ファイル名とその他の情報を出力の前に挿入します。
プログラムの最初の部分。 -遅れ 最初の情報が終わるまでその情報を遅らせます
ドキュメントのチャンク、動作は少し似ています WEB 「リンボ」という選択肢があります。
通常は、ユーザーが特殊な機能を追加できるようにするために使用されます。 ラテックス \ドキュメントクラス command
最初のドキュメントチャンク内のその他のプリアンブル資料 (つまり、
最初の @ 記号)。 このオプションでは、末尾の相互参照情報も強制的に削除されます。
ドキュメントの最後ではなく、最後のチャンクの直前に出力されます。 の
最後のチャンクには次のものが含まれると予想されます \end{ドキュメント}。 この -遅れ オプションは、
-n オプションを選択します。
-tk ストップ間隔でタブを展開します k 列。 (デフォルトでは 8 列ごとに展開されます。)
-t タブを出力にコピーします。
-v パイプラインと RCS 情報を標準エラーに出力します。
インデックス作成 そして クロスリファレンス
と一緒に使用する場合 ラテックス, troffまたは HTML、 ない インデックス作成と相互参照を提供できる
チャンクおよびプログラミング言語識別子の情報。 識別子の定義
バッククォート (`) を使用して手動でマークすることもできます。 の -フィルター btdefn オプションはこれらを認識します
マーキング。 一部の言語では、定義は、 -自動定義
オプション。 このセクションでは、インデックス作成と相互参照のオプションについて説明します。 そうかもしれない
最初の読み込みでスキップされました。
-x ラテックス、 各チャンク名にページ番号を追加して、その場所を識別します
チャンクの定義を取得し、定義と関連する相互参照情報を出力します。
を使用します。 ために HTML、 チャンクの使用と定義の間にハイパーテキスト リンクを作成します。
日時 ない -x と一緒に使用されます ラテックス、 制御シーケンス \noウェブチャンク に拡張します
すべてのコードチャンクのソートされたリスト。
-インデックス 定義された識別子の相互参照情報 (またはハイパーテキスト リンク) を構築します。
定義は、入力ファイル内で見つかったものです。 -自動定義 言語 または
-フィルターbtdefn。 必要 ラテックス or HTML -インデックス 含意する -バツ; 両方の意志も含めて
奇妙な出力を生成します。 ない への相互参照を生成しません
引用符で囲まれたコード内に出現する識別子 (@[[...@]])、ただしハイパーテキストは生成されます
リンク。 いつ ない -インデックス と一緒に使用されます ラテックス、 制御シーケンス \noウェブインデックス
識別子のインデックスに展開されます。
-indexfrom index
いいね -索引、 ただし、インデックス付けされる識別子はファイルから取得されます index。 見る
NOINDEXとします。
-自動定義 長い
識別子の定義を自動的に検出します。 チャンク内のコードは言語内にある必要があります
長い。 許容される 長いさまざまですが、次のものが含まれる場合があります テックス or のアイコンをクリックします。 ないとダメ -索引、
それは先行する必要があります。
-showautodefs
の値を表示 長い で使用可能 -自動定義.
ERROR メッセージ
If 角がない or ない ドキュメント内でチャンク名を検出すると、これが
エラーを示します。通常は「<」のスペルミスです。 >=」。 その他のエラー メッセージは次のようになります。
説明不要です。
定義されていないチャンクを参照するのは誤りですが、チャンクが定義されていても問題ありません。
定義されていますが、使用されていません。
例
このマニュアルページを理解するのが難しい場合は、あなたは一人ではありません。 以下にいくつかの例を示します
始めましょう。 あなたは持っていると仮定します foo.nw チャンク内の C プログラムを含むファイル < >
チャンク内のヘッダー ファイル < >、ドキュメントが次を使用してマークアップされていることを確認します。
ラテックス(1)。 最も一般的なオプションを使用してビルドする方法を説明します。
C ソースを再構築するには、次のことを試してください。
角がない -L -Rfoo.c foo.nw > foo.c
ヘッダー ファイルを再構築するには、次のことを試してください。
角がない -Rfoo.h foo.nw | CPIF ふー。
ここで妥協点が XNUMX つあります。 省略 -L 続けて #ライン ヘッダーファイルから、そして
CPIF コマンドの書き換えを防止します ふー。 内容が変わっていない限り。
したがって、これは Makefile ルールに組み込むのに適したコードです。
印刷ドキュメントを作成するには、次のコマンドを実行します。
ない -自動定義 c -インデックス foo.nw > foo.tex
独自のプリアンブルがある場合は、次の内容が含まれます \ドキュメントクラス そしてすべて、次のものも必要になります
-遅れ オプションを選択します。
Web ページを構築するには、次のコマンドを実行します。
ない -フィルター 2h -自動定義 c -インデックス -html foo.nw | htmltoc > foo.html
楽しんでください!
onworks.net サービスを使用してオンラインで nountangle を使用する