Text-C
プログラミング言語「Text-C」は、C言語をベースに文字列処理に適したテキストライブラリとプロパティを追加したWZのマクロ言語です。
Text-Cは、下記のプログラムツールに対応しています。
コマンドによる編集テキストの操作、ツールによる編集テキストのステータス表示、プラグインによるWZのカスタマイズが可能です。
| コマンド | マクロメニューから選択・実行、キー割り当て用のコマンド |
| ツール | ツールビューにダイアログやステータスを表示する各種ツールの作成 (例) 文字数カウント、検索ツール、置換ツール、ファイル登録ツール |
| ステータスツール | ステータスバーのミニツールの作成 (例) カーソル位置の表示、検索ボックス、原稿用紙枚数表示 |
| プラグイン | WZ7の標準コマンドの拡張、コマンドの追加、メニューの追加・変更 |
| アプリケーション | WZ EDITORと独立動作するアプリケーションの作成 (例) WZ Filer、WZ Grep、Textc Mail、Textc Ftp Filer |
Text-Cは、ユーザカスタマイズからテキストエディタの拡張や本格アプリケーション作成に対応する、
下記のAPIと構文を提供しています。
| テキストの取得 | WZ7でオープン中のテキストの取得、新規テキストの作成 |
| テキストの操作 | 挿入・削除・検索・正規表現・ジャンプ・ソート・段落走査・文字走査 |
| テキストファイル操作 | ファイルからテキストにロード・テキストからファイルにセーブ |
| テキストのビュー | テキストを各種形式のビューで表示 エディトボックス・アウトライン・リスト・ボタン・メニュー |
| ビューの取得 | カーソルのあるビューの取得、HWNDからビューの取得 |
| ユーザインターフェース | メニュー、ダイアログ、情報表示、問い合わせ |
| 設定 | ユーザデータのファイル保存、設定ダイアログ |
| 標準ライブラリ | 文字列操作、メモリ操作、文字操作、文字コード変換、ソケットなど |
| 変数 | 自動変数、static変数、global変数、3次元までの配列、ポインタ、 変数名は63文字まで |
| 整数 | 32bit,16bit,8bit、10進数符号付き・符号なし、16進数、 ビットフィールド |
| 浮動小数点 | double型による15桁の有効桁数の浮動小数点演算 |
| 識別値 | ID_に続く英数字6桁までの識別子を定数として自動定義 |
| 構造体 | struct、typedefによる構造体 |
| 共用体 | unionによる共用体 |
| 条件分岐 | if〜else〜、switch〜case、3項演算子 a ? b : c |
| ループ | for、while、do〜while |
| プリプロセッサ | #include、#define、#if〜#elif〜#else〜#endif、#ifdef、#ifndef |
| Windows API | Windows API、DLLの呼び出し |
| マルチスレッド | マルチスレッドとWindows APIによる同期 |
C言語との相違点と拡張
Text-Cは、C言語と比較して下記の相違点と拡張があります。
Text-Cでは、マクロプログラミングとWindows SDKのコンパイルに必要な仕様を限定して提供しています。
C言語にマクロプログラミング向けの変数の初期化を追加して、変数の宣言位置の制限を解除しました。
Text-C
| 配列 | 最大3次元まで |
| 文字列、数値 | 10進、16進 |
| 関数の引数 | 構造体はポインタ渡し、ポインタ返し |
| 変数の宣言 | ブロック途中の宣言にも対応 |
| 変数の初期化 | 自動変数を0に初期化 |
| プログラムの実行 | 中間プログラムコード(Pコード)を出力、Pコードを解釈実行 |
| タイプチェック | C++に近い厳密なチェック |
| 拡張構文 | walk、pretext |
| 無効な構文 | asm |
| 無効な宣言 | const、register |
C言語
| 配列 | 次元の制限なし |
| 文字列、数値 | 10進、16進、8進 |
| 関数の引数 | 構造体の制限なし |
| 変数の宣言 | ブロック先頭での宣言のみ |
| 変数の初期化 | 自動変数の初期値は不定 |
| プログラムの実行 | CPUネイティブコードを出力、実行 |
今後の更新で、「キーボードマクロからのプログラム作成」「編集テキストの操作」「ツールの作成」などの掲載を予定しています。