これは、Ubuntu Online、Fedora Online、Windows オンライン エミュレーター、MAC OS オンライン エミュレーターなど、複数の無料オンライン ワークステーションのいずれかを使用して、OnWorks 無料ホスティング プロバイダーで実行できるコマンド bcpp です。
プログラム:
NAME
BCPP - C++ 美化ツールを作成
SYNOPSIS
BCPP [-bcl] [-bnl] [-cc ][-f ]
[-fi ] [-fnc ] [-NS ] [-h] [-i
][-lg] [-nc] [-qb] [-s] [-t] [-tbcl] [-tbnl] [ ] [ ]
[ ]
全般的な OPTIONS
-bcl コード行で中かっこを開きます
-bnl 新しい行で中かっこを開きます
-cc
コメントとコードを揃える列
-f
関数の行間隔
-fi
入力ファイル名
-fnc
カスタム構成ファイルをロード
-NS
出力ファイル名
-h, -? ヘルプメッセージを表示する
-i
インデントスペースの長さ
-lg グラフィック文字を残す
-nc
コードなしでコメントを揃える列
-qb
内部キューのバッファ サイズを定義する
-s インデントにスペースを使用する
-t インデントにタブを使用する
-tbcl コード行の最上位の左中括弧
-tbnl 新しい行のトップレベルの左中かっこ
有効/無効 OPTIONS
-y または -n で始まるオプションは、それぞれ機能を有効/無効にします。
-y A or 作成
コード行で中かっこを開きます
-yb or -nb
拡張子が .bac のバックアップ入力ファイル
-イビ or -nbbi
ブロックの両方の中かっこをインデントする
-イビ or -nbi
ブロックの末尾の括弧をインデントする
-ykcwc or -nkcwc
コードでコメントを保持する
-ylcnc or -nlcnc
NoCode でコメントを残す
-よ or -番号
プログラム出力
-yq or -nq
引用符内の非 ASCII 文字を XNUMX 進数に変更します
概要
このプログラムを使用すると、ユーザーは C または C++ ソース コードの特定の要素を再フォーマットできます。 この
ある人のコードが少し読みにくい場合や、インデントされたスタイルになっている場合に役立ちます。
あなたは嫌いです。 このプログラムを使用すると、コードのスタイルを変更して、
あなたのスタイルにぴったりとマッチします。 ただし、コーディングできる C(++) のスタイルが多いため、
このプログラムがソース コードを適切に処理することには限界があり、その結果、
フォーマットされたソース。
実装されている機能のリストは次のとおりです。
- 特定の場所でコメントを再配置します。
- 引用符内に含まれていない印刷できない文字を削除します。
- 引用符内の印刷できない文字を XNUMX 進数/文字表記に変換します。
- 関数間の行間隔を変更します。
- すべての行から末尾のスペース、および先頭と末尾の空白行を削除します
ファイルから。
- 左中括弧の位置を Kernighan/Ritchie スタイルまたは Pascal スタイルに変更します。
- インデントでのタブまたはスペースの使用。
- 特定の C 条件ステートメントによる単一行コードのインデント、
埋め込み SQL ステートメントを含みます。
要件
このプログラムは、Microsoft DOS V3.3 および Unix プラットフォームで動作します。
約 50 ~ 70k (内部キューのサイズによってはそれ以上) のメモリを使用します。
実行中。
プログラムコードは、既存の C++ と互換性があるように記述されています。
ただし、コードは ANSI 標準ではないため、変更が必要になる場合があります。
環境。 ソース コードは、標準の ANSI および Posix 関数で記述されているため、
別のコンピューターで再コンパイルする場合、最小限の再書き込みが必要になるはずです
プラットフォームを提供します。
現在のソースは、Turbo C++ V3.0、MS-DOS、GNU G++ 2.7.2 を使用してコンパイルされています。
SunOS、Solaris を実行する Sun SPARCstation、および IRIX を実行する SGI ワークステーションで。
OPERATION
プログラムの操作は、コマンド ライン (CLI) を介して行われ、構成の助けを借りて
ファイルを使用して、フォーマット要件を定義できます。 基本的に、各コマンド ディレクティブは
コマンド名の後にダッシュ「-」が続きました。 コマンドに別のパラメーターが必要な場合は、
パラメータはコマンドの後に追加され、スペースで区切られます (つまり、bcpp -fi
input.cpp)。
注意: コマンド ヘルプを表示するために bcpp.exe を単独で入力しないでください。bcpp -? または bcpp -h を使用してください。
これは、O/S からの入力リダイレクトによるものです。 Unix CLI の規則に従って、
CLI から読み取られ、コマンド ディレクティブを持たない文字列は、
入力ファイル。 コマンド ラインでそのようなオカレンスが XNUMX つある場合、優先順位は次のようになります。
最初に入力ファイル、XNUMX 番目に出力ファイル (つまり、bcpp infile.cpp outfile.cpp -lg)、XNUMX 番目
このような場合、エラー メッセージが生成されます。
出力ファイルが提示されない場合、想定される出力は標準出力経由です。 この
プログラム出力を自動的にオフにします。 コマンド ラインに入力されたパラメータは、
構成ファイルから読み取られたパラメーターをオーバーライドします。
例:
bcpp -fi 入力.cpp -f 2 -qb 5 -na -no -cc 60 > 出力.cpp
シノプシス
-fi input.cpp 入力ファイル = input.cpp
-f 2 関数間隔 = 2
-qb 2 内部キュー バッファ = 5
-na ASCII 以外の文字を削除
-no プログラム出力の抑制
-cc と同じ行に表示される 60 個のコメント
コードは列 60 に配置されます。
> output.cpp プログラムの出力は次の場所にリダイレクトされます
「出力.cpp」
構成ファイルを使用して、変更されない要素のほとんどを指定できます。
コードの再フォーマット。 構成ファイルは、かなり長い単語で構成されています。
コードの出力スタイルを説明するために使用されます。 ただし、これらのパラメータの設定は非常に
簡単に言えば、基本的にブール型または整数型の XNUMX つの型で構成されます。 お気に入りを使って
テキストエディタでは、設定ファイル内で以下を変更できます...
次のパラメーターは、構成ファイル内に含まれます (デフォルトは
bcpp.cfg)。 プログラムは、プログラムでデフォルトの構成ファイルを読み取ろうとします
ソース (つまり、bcpp が実行されたパス)。 -fnc オプションを使用すると、カスタムを定義できます
構成ファイル名、および CLI からのパス。
整数型の範囲: 0 ~ 5000 ブール型の範囲: オン、はい、またはオフ、いいえ
Function_Spacing : 整数
このパラメーターは、XNUMX つの関数を区切る行数を指定します。
例えば、
関数間隔 = 2
CLI
-f2
Use_Tabs: ブール値
コードのインデントでタブを使用するかどうかを指定します。
例えば、
use_tabs = いいえ
CLI
-t (タブをオンにします。デフォルトではスペースを使用します)
-s (インデントにタブを使用)
Indent_Spacing : 整数
インデントするスペースの数を指定します。 このパラメーターは、タブの幅も設定します。
Bcpp は、タブの幅をインデントの幅と同じと見なします。
EG
インデント間隔 = 4
CLI
-i 4
Comments_With_Code : 整数
行のコードの後に表示されるコメントが表示される列を定義します
置いた。
例えば、
コメント付きコード = 50
CLI
-cc 50
Comments_With_Nocode : 整数
行に表示されるコメントが配置される列を定義します。
例えば、
comment_with_nocode = 0
CLI
-nc0
Indent_Preprocessor: ブール値
true の場合、bcpp はプリプロセッサ行を C(++) コードのインデントにインデントします。
false の場合、プリプロセッサ行は最初の列になります。 認識されない (つまり、
非標準) プリプロセッサ行は常に最初の列に配置されます。
Indent_Exec_Sql: ブール値
true の場合、bcpp は埋め込み SQL ステートメント (EXEC SQL など) を検索し、フォーマットします。
それらを特別に。
Keep_Comments_With_Code : ブール値
このオプションは、「Comments_With_Code」オプションをオーバーライドします。 このオプションをオンに設定する
インラインコメントがコードに追加されるため、収まらないコメントが作成されます
とにかく。
Leave_Comments_NoCode : ブール値
このオプションは、「Comments_With_Nocode」オプションをオーバーライドします。 このオプションをオンに設定する
コードと同じ行にないコメントを同じ行にインデントします。
コードとしてのインデント。
例えば、
leave_comments_nocode = オン
CLI
-nlcnc (Leave_Comments_NoCode をオフにする)
-ylcnc (Leave_Comments_NoCode をオンにする)
NonAscii_Quotes_To_Octal : ブール値
非 ASCII (印刷不可) 文字を XNUMX 進表記に変更するには、このオプションを使用します。
それらは引用符で囲まれています。 このパラメータは、次のいずれかでない限り有効になりません。
Ascii_Chars_Only または Leave_Graphic_Chars パラメータが設定されています。
例えば、
NonAscii_Quotes_to_Octal = いいえ
CLI
-nq (XNUMX 進数への引用符内の非 ASCII 文字をオフにします)
-yq (非 ASCII 文字を引用符で囲んで XNUMX 進数にする)
Leave_Graphic_Chars : ブール値
このパラメータを yes に設定すると、印刷できない文字が
ただし、IBM グラフィックスの文字はそのままにしておきます。 非
引用符内にある印刷可能な文字は、
NonAscii_Quotes_To_Octal パラメータが True に設定されている場合は、XNUMX 進数/文字表記。
EG
leave_graphic_chars = はい
CLI
-lg
Ascii_Chars_Only : ブール値
このパラメータを yes に設定すると、印刷不可能な非 ASCII 文字が削除されます
入力ファイルから。 引用符内にある印刷できない文字は、
NonAscii_Quotes_To_Octal が に設定されている場合、XNUMX 進数/文字表記に変換されます。
真実。 Leave_Graphic_Chars パラメータを使用している場合は、このパラメータをコメントアウトします。
このパラメーターはそれをオーバーライドするためです。
例えば、
ascii_chars_only = はい
CLI
-na (非 ASCII 文字を削除しないでください)
-ya (はい、ASCII 以外の文字を削除します)
Place_Brace_On_New_Line : ブール値
'on' に設定すると、bcpp は新しい行に左中括弧を配置します ("Pascal" スタイルの C
'off' に設定すると、bcpp は "K&R" スタイルの C コーディングを使用します。
Pascal スタイルの C コーディング:
if (条件)
{
声明。
}
K&R スタイルの C コーディング:
if (条件) {
声明。
}
例えば、
place_brace_on_new_line = オン
CLI
-bnl (オン)
-bcl (オフ)
Program_Output : ブール値
このパラメーターは、プログラムからの出力を停止し、終了する可能性のある出力を破壊します
標準出力を介してプログラムから。 このパラメータが off/no に設定されている場合
エラーが発生しない限り、プログラムからの出力は生成されません。
標準エラーは、処理中に発生したエラーを表示するために使用されます。
例えば
program_output = オフ
CLI
-no (デフォルトは可能であれば出力を生成します。
強制出力オフ)
-yo (可能であればプログラム出力をオンにする)
Queue_Buffer : 整数
内部メモリが必要とする行のサイズを指定します
処理バッファ。 これは、Kernighan/Ritchie でオープン ブレースの再配置に使用されます。
スタイル。 このバッファを大量のメモリに拡張すると、処理が遅くなります
小さな機械。
例えば、
キューバッファ = 2
CLI
-qb2
; : 適用できない
テキストの前にセミコロンを置くと、セミコロンの後のすべてが
コメント。
Backup_File : ブール値
このオプションは、入力ファイルを拡張子「.bac」のファイルにバックアップし、
入力ファイルを再フォーマットされたバージョンで上書きします。
例えば、
backup_file = はい
CLI
-yb (はい、可能であれば入力ファイルをバックアップします)
-nb (いいえ、入力ファイルをバックアップしません)
ローディング File : CLI の
Bcpp は、特定のファイルからカスタム ファイルを選択できるようにする構成設定を実装します。
ユーザーによって定義されたパス/ファイル。
例えば、
bcpp input.cpp -yb (bcpp.cfg 構成ファイルを読み取る
CLI オプションを処理する前)
bcpp -fnc /bin/bcpp.cfg (構成ファイルを
当該場所)
CLI
-fnc (ユーザー定義を使用)
入力ファイル名: CLI のみ
このオプションは、指定されたパスとファイル名でデータを読み取るように bcpp に指示します。
例えば
bcpp -fi 入力.cpp > 出力.cpp
CLI
-fi
出力ファイル名: CLI のみ
これは、データが書き込まれる出力ファイル名を定義します。
例えば、
次のようにする必要があります (少なくとも DOS では):
bcpp -fo 出力.cpp < 入力.cpp
クリ
-NS
オンライン ヘルプ: CLI のみ
簡潔ではあるが要点がプログラム内に存在するオンライン ヘルプがいくつかあります。 の
help は、プログラム内で使用可能なすべての CLI コマンドを一覧表示します。
EG bcpp -h
CLI bcpp -?
bcpp -h
File エラー メッセージ
構成ファイル内でコマンド/パラメーターを間違って入力すると、
実行可能プログラムがそれを読み取ると、プログラムはそのエラーメッセージとともにエラーメッセージを生成します
行番号。 以下は、実行中に発生する可能性があるエラー メッセージの説明です。
構成ファイル内のパラメーターの読み取り。
キーワードの後の構文エラー:
パラメーターの後の文字/単語が正しくないためにエラーが発生する、または
別のキーワードが必要です (例: =、Yes、No、On、Off)
範囲エラー:
整数パラメータに無効な数値設定があるとエラーが発生します (つまり、A
number は 0 から 5000 の範囲ではありません)。
期待される数値データ:
このエラーは、整数の数値データの代わりに英数字データが使用されている場合に発生します
型パラメータ。
解読できません:
上記の行のパラメーターは無効です (つまり、認識できません)。
構成ファイルの読み取り後にエラーが発生した場合。 ユーザーにプロンプトが表示されます
[y/n] 継続プロンプトで、構成エラーを修正する前に
処理するか、現在の設定パラメータで続行します。
ラン Time エラー 間に 入力 File 処理
メモリの割り当てに失敗しました:
プログラムは、データを処理するためのメモリを割り当てることができませんでした。 このエラーは停止します
データの処理。
ライン構築エラー
ある種のコードが必要です! データ型 = ? :
このエラーは、ライン構築プロセス内で発生します。 デコードされた行
入力ファイルからのこのプログラムには判読できない可能性があります。 の行を見つけます
入力ファイルを変更して、処理を続行できるようにするかどうかを確認してください。
C(++) 美容師 制限事項
このセクションでは、bcpp が再構築に失敗するコード内の特定の領域を強調します。
コードを目的のスタイルに出力します (ただし、コンパイルできる場合もあります)。
- このプログラムを介して供給されるすべてのコードは、コンパイル可能な状態である必要があります。 この
左中括弧をキャンセルする右中括弧が必要であることを意味します。 Bcpp
コードの構文チェックはまったく行われませんが、open に従って再フォーマットされます。
閉じ中かっこ、および単一行のインデント用のいくつかのキーワード。
- 開いたブレースの移動距離にも制限があります
処理されます。 これは、プログラムの現在の設計によるものです (これは簡単に修正できます)。
内部キューのバッファー サイズを拡張することによって)、メモリ要件、処理
速度。 動的メモリ割り当ては、プログラム全体で広く使用されています。
特定の条件が発生した場合、現在の制限を超える可能性があります。
この例は、改行から上のブレースへの移動を示しています。
次の場合、プログラムの範囲外になるため、コード行は実行されません。
内部キュー バッファのサイズは 2 行に制限されています。
ブレース移動範囲の例:
もし (a == b)
// ブレースは再配置されません
{
b = c;
}
if (a == b) // ブレースの位置が変更されます
{
b = c;
}
最終結果
もし (a == b)
// ブレースは再配置されません
{
b = c;
}
if (a == b){ // ブレースの位置が変更されます
b = c;
}
- XNUMX 行のコードには XNUMX つのタイプのみを含める必要があるという制約があります。
コメント。 C と C++ の両方が同じ行に存在する場合、その行は
プログラムの構築フェーズが混乱し、エラーが発生します
メッセージ。 次の行は、Line Construction Error メッセージを生成します。
複数のコメントの例。
/* C コメント */ a = b; // C++ コメント
上記の行はエラーを生成します。 XNUMXつのタイプを削除することでこれを修正します
コメントするか、それらを結合するか、新しい行に配置します。
作者
1995 年 XNUMX 月、Steven De Toni によって書かれました。
Thomas Dickey による更新 1997 年 2002 月~XNUMX 年 XNUMX 月
Steven De Toni には、さまざまなオンライン ネットワーク経由で連絡できます。
インターネットアドレス
[メール保護]
[メール保護]
ファイドネット(ドッグネット)によるネットメール
スティーブン・デ・トニ
"大脱走"、
ハミルトン、
ニュージーランド
デミモンド・ニュージーランド・ナショナル・メール・ネットワーク
(ドッグネット参照)
他のすべてが失敗した場合は、カタツムリのメールを次の宛先に送信します。
17ガーデンハイツアベニュー、
メルヴィル、
ハミルトン、
ニュージーランド
トーマス・ディッキーの連絡先は次のとおりです。
[メール保護]
Glyn Webster には、私のマニュアルの校正とテストをしてくれて、特に感謝しています。
プログラム。
Justin Slootsky の意見とこのバージョンの変更に感謝します。
すべて 文法 このドキュメント内のエラーは、楽しむためにあります。 ;-)
免責事項
作者は、このプログラムが指定された仕様で機能することを保証しません。
構成、またはプログラムが再構成したソースコードの出力を介して
処理されます。 このプログラムの使用から生じる可能性のある損害 (ソフトウェア、または
ハードウェア) はユーザーの問題であり、作成者の問題ではありません。 このソフトウェアを使用すると、
この免責事項.=
C++ ビューティファイア()
onworks.net サービスを使用してオンラインで bcpp を使用する