2006-01-01から1ヶ月間の記事一覧

SourceToHTML にGUIを

「SourceToHTML」と「SourceToRTF」をマージし、 また、"HTA"によるユーザーインターフェースを持たせました。以下は、画面の定義部分です SourceToHtml.Hta (1/2) <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> </meta></head></html>

JavaScript で作る SourceToRTF

これまで、作成してきた「SourceToHTML」を改造して、 「SourceToRTF」を作成しました。 .\application\template.rtf {\rtf1\ansi\ansicpg932\deff0\deflang1033\deflangfe1041 {\fonttbl {\f0\fmodern\fprq1\fcharset128 \'82\'6c\'82\'72 \'83\'53\'83\'56…

強調表示

「Delphi」 の "exit", "break" など、予約語ではないが強調表示したいが、 予約語とは別の色で表示したい、といった要求にも対応できるようにしました。これまで、「予約語」は、各言語タイプ.key というファイルに保存するよう設定していましたが、 (たと…

他言語に対応する (Delphi, PL/SQL, T-SQL)

Delphi用に処理を変更しなければいけないのは、 ・「(*」〜「*)」は複数行コメント ・「{」〜「}」は複数行コメント ・「'」〜「'」は文字列 ・「{$」〜「}」はコンパイラ指令 ・8進表記はない ・16進表記は「$」ではじまる ・整数定数を「#」〜であらわす (…

他言語に対応する (VB)

VisualBasic用に処理を変更しなければいけないのは、 ・「'」以降は単一行コメント ・複数行コメントはない ・「"」〜「"」は文字列 ・「#」〜「#」は日付 ・「[」〜「]」は識別子 ・8進表記は「&O」ではじまる ・16進表記は「&H」ではじまる ・「型文字」と…

他言語に対応する (JavaScript)

JavaScript での、正規表現、「/ 〜 /」に対応しました。 SourceToHtml014.js // 雛形ファイル名 var tempFileName = ".\\application\\template.html";// 変換対象文字 var escapeChar = "<>&()|*+-";// 言語タイプ var langType = "";// 予約語一覧 var ke…

処理の見直し

ちょいと、ソ−スを整理しました。 SourceToHtml013.js // 雛形ファイル名 var tempFileName = ".\\application\\template.html";// 変換対象文字 var escapeChar = "<>&()|*+-";// 言語タイプ var langType = "";// 予約語一覧 var keyword = new Object();/…

他言語に対応する (VC++, C++Builder, C#)

これまで、「Visual C++」のソースを HTML化することを考えてきましたが、 「Visual C#.NET」の、@"〜"形式の「逐語的文字列」への対応を追加します。 SourceToHtml012.js // 雛形ファイル名 var tempFileName = ".\\application\\template.html";// 変換対…

Token の種類を判定する (ディレクティブ)

#region、#if などのプリプロセッサディレクティブの処理を追加します。 少し乱暴ですが、「#」から始まる文字列を「ディレクティブ」とみなします。 SourceToHtml011.js // 雛形ファイル名 var tempFileName = ".\\application\\template.html";// 変換対象…

Token の種類を判定する (識別子・予約語)

以前、英数字と「_」からなる文字列を「識別子」と定義しましたが、 今回は少し改良して、「識別子」のうち、あらかじめ「予約語」として 登録されているものを「予約語」と定義し、それ以外を「識別子」とします。 SourceToHtml010.js // 雛形ファイル名 va…

Token の種類を判定する (記号)

今回は、「記号」の処理を追加します。 「記号」の定義は、「+」「-」「/」「*」「=」などの記号、全てとします。 SourceToHtml009.js // 雛形ファイル名 var tempFileName = ".\\application\\template.html";// 変換対象文字 var escapeChar = "<>&()|";//…

Token の種類を判定する (数字・識別子)

今回は、数字・識別子を認識できるようにします。 「数字」は、「数字から始まり、数字か『.』からなる文字列」、と定義したいところですが、 16進表記だと、「ABCDEFXabcdefx」の英字が使用されるし、 また、数値リテラルとして、さまざまな英字を使用する…

Token の種類を判定する (コメント・文字・文字列)

前回は仮に、英数字を「予約語」として扱いましたが、 今回は実際に、「/*」 から 「*/」 までと、「//」から「\n」までを「コメント」として扱います。 ただし、それだけだと、文字列中の、「/*」、 「*/」、 「//」 もコメントの開始・終了と認識してしま…

詳細を隠す

メインルーチンが長くなり過ぎて、見にくくなったので、関数を作成して、詳細な処理を関数内に隠します。 また、入・出力ファイル名を、ハードコーディングせずに、コマンド引数として渡すようにします。 SourceToHtml006.js // 雛形ファイル名 var tempFile…

トークンごとに処理する

まずは、練習として、英数字からなる文字列を予約語として扱ってみる。 SourceToHtml005.js // 入力ファイル名 var inFileName = "Z:\\TEST.txt";// 出力ファイル名 var outFileName = "Z:\\TEST.html";// 雛形ファイル名 var tempFileName = "Z:\\TEST.temp…

TAB を置換

TAB を置換する。 SourceToHtml004.js // 入力ファイル名 var inFileName = "Z:\\TEST.txt";// 出力ファイル名 var outFileName = "Z:\\TEST.html";// 雛形ファイル名 var tempFileName = "Z:\\TEST.temp";// 変換対象文字 var escapeChar = "<>&()|";// Fil…

, &, |, (, ) を置換

<, >, &, |, (, ) を置換する。 SourceToHtml003.js // 入力ファイル名 var inFileName = "Z:\\TEST.txt";// 出力ファイル名 var outFileName = "Z:\\TEST.html";// 雛形ファイル名 var tempFileName = "Z:\\TEST.temp";// 変換対象文字 var escapeChar = "<…

テンプレートファイルとマージして出力する

続いて、ソースファイルとテンプレートファイルとをマージして出力する。 SourceToHtml002.js // 入力ファイル名 var inFileName = "Z:\\TEST.txt";// 出力ファイル名 var outFileName = "Z:\\TEST.html";// 雛形ファイル名 var tempFileName = "Z:\\TEST.te…

単純なファイルコピー

まずは、「1行読んで1行書く」単純なファイルコピーから。 SourceToHtml001.js // 入力ファイル名 var inFileName = "Z:\\TEST.txt";// 出力ファイル名 var outFileName = "Z:\\TEST.html";// FileSystemObject を 生成 var fs = WScript.CreateObject("Sc…

行番号の表示

行番号の表示 現行版の SourceToHTML では、行番号を付加していないが、 今後のバージョンアップで、真っ先に取り入れたい機能である。 この手のツールは、普通↓こんな風にしているが、 <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> </HEAD> <BODY> <PRE> 1 プログラムソース1行め 2 プログラムソース2行め 3 プログ</pre></body></html>…

SourceToHTML の 考え方

SourceToHTML の 考え方 昨日は、ヘッダ部とフッタ部のテンプレートを用意して、 それらと、ソースファイルを連結する、というやり方で考えていたが、 それよりも以下のようなテンプレートファイルを用意して、 <HTML> <HEAD> <meta http-equiv="Content-Type" content="text/html;charset=shift_jis"> <TITLE>%入力ファイル名%</TITLE> </HEAD> <BODY> </body></html>

いちから作り直してみる

いちから作り直してみる 以前、「SourceToHTML」を作成したときは、最初 C# で作成した後、 他の様々な言語に焼き直してみました。 その後、実行ファイル形式で公開することにし、 配布の容易さを考えて、C++Builder版に対して機能を追加しました。 その過程…