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

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

#region、#if などのプリプロセッサディレクティブの処理を追加する。 少し乱暴だが、「#」から始まる文字列を「ディレクティブ」とみなして まず問題ないだろう。 SourceToHtml12.plx use strict; #******************************************************…

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

以前、英数字と「_」からなる文字列を「識別子」と定義したが、 今回は少し改良して、「識別子」のうち、あらかじめ「予約語」として 登録されているものを「予約語」と定義し、それ以外を「識別子」と定義する。 SourceToHtml11.plx use strict; #*********…

Token の種類を判定する (演算子・区切り記号)

前回は、「+」「-」「/」「*」「=」など、記号全てを「区切り記号」として 定義したが、今回は少し改良して、あらかじめ「演算子」として登録されているものを 「演算子」として扱い、それ以外の記号を「区切り記号」とする。 SourceToHtml10.plx use strict…

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

今回は、「区切り記号」の処理を追加する。 「区切り記号」の定義は、「+」「-」「/」「*」「=」などの記号 全てとする。 SourceToHtml9.plx use strict; #****************************************************************************** # C# → HTML 変…

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

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

Token の種類を判定する (文字・文字列)

前回は、少し本格的に、 「/*」から 「*/」までと、「//」から「\n」までを「コメント」と判定できるようにしたが、 文字列中の、「/*」、 「*/」、 「//」 もコメントの開始・終了と認識してしまう。そこで今回は、文字・文字列を認識する処理を追加して、 …

Token の種類を判定する (コメント)

前回は仮に、英数字を「予約語」としてあつかったが、 今回は実際に、「/*」 から 「*/」 までと、「//」から「\n」までを「コメント」として扱う。 それ以外は、「その他」として扱う。 SourceToHtml6.plx use strict; #**********************************…

トークンごとに処理する

まずは、練習として、英数字からなる文字列を予約語として扱ってみる。 SourceToHtml5.plx # ヘッダ部 fileCopy(".\\Template\\header.txt");# ソース部の変換 putLine($line) while ($line = getLine());# フッタ部 fileCopy(".\\Template\\footer.txt");# …

詳細を隠す

関数を作成して、詳細な処理を関数内に隠す。 SourceToHtml4.plx # ヘッダ部のコピー fileCopy(".\\Template\\header.txt");# ソース部の変換 while ($_ = getLine()) { putLine($_); }# フッタ部のコピー fileCopy(".\\Template\\footer.txt");# ファイルの…

, &, |, (, ) を置換

<, >, &, |, (, ) を置換する。 SourceToHtml3.plx #ヘッダ部 open(F, ".\\Template\\header.txt") || die "open: $!"; while () { print; } close(F);#ソース部 while (<>) { while(($pos = index($_, "\t")) >= 0) #TABがあるか { $num = 4 - ($pos % 4); …

TABを空白に変換

TABを、適当な数の空白に変換する。 SourceToHtml2.plx #ヘッダ部 open(F, ".\\Template\\header.txt") || die "open: $!"; while () { print; } close(F);#ソース部 while (<>) { while(($pos = index($_, "\t")) >= 0) #TABがあるか { $num = 4 - ($pos % …

ファイルの連結

続いて、ソースファイルとテンプレートファイルとを連結して出力する。 SourceToHtml1.plx #ヘッダ部 open(F, ".\\Template\\header.txt") || die "open: $!"; while () { print; } close(F);#ソース部 while (<>) { print; }#フッタ部 open(F, ".\\Template…

ファイルのCOPY

今日から、Perl に挑戦。 まずは、単純な File の Copy から。 copy.plx while (<>) { print; } 実行形式 C:\Perl5>copy.plx input.txt > output.txt

文脈情報 クラス

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenContext.h //******************************************************************************************************* // 文脈情報クラス //*******************…

トークン読み込み用クラス (T-SQL用)

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReaderTsql.h //******************************************************************************************************* // トークンごとに 文字列と その種類…

トークン読み込み用クラス (PL/SQL用)

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReaderPlsql.h //******************************************************************************************************* // トークンごとに 文字列と その種類…

トークン読み込み用クラス (Delphi用)

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReaderDelphi.h //******************************************************************************************************* // トークンごとに 文字列と その種…

トークン読み込み用クラス (VisualBasic用)

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReaderVB.h //******************************************************************************************************* // トークンごとに 文字列と その種類を…

トークン読み込み用クラス (C#用)

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReaderCSharp.h //******************************************************************************************************* // トークンごとに 文字列と その種…

トークン読み込み用クラス (大文字・小文字を意識しない 言語用)

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReaderNoCase.h //******************************************************************************************************* // トークンごとに 文字列と その種…

トークン読み込み用クラス (大文字・小文字を意識する 言語用)

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReaderCase.h //******************************************************************************************************* // トークンごとに 文字列と その種類…

トークン読み込み用クラス (共通)

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReaderCommon.h //******************************************************************************************************* // トークンごとに 文字列と その種…

トークン読み込み用クラス

これまでC# で作成してきた「SourceToHTML」を、C++Builder に焼きなおしてみます。 TokenReader.h //******************************************************************************************************* // トークンごとに その種類と、内容を返す…