2009-08-11 9 views
1

私は、事前に基本的なインタプリタを作成しました。Cには、解析の負荷が多かったプリプロセッサがあります。私はC#でまだ使用するためにこのプリプロセッサを移植したいと思います。CからCへのファイル前処理コードのポーティング

私は変数の名前を取得することができるように

 
var $mine=  this; 
     //weird intendtation 
var  $something  + $a=$b; 

のようなものが\ 0ビーイングのNULLで

 
var\0$mine\0=this\0;\0var\0$something\0+$a\0=$b\0;\0 

(としてかなり機械で読み取り可能な何かに出て来るので、私の古いプリプロセッサはそれを作りましたと非常に非常に簡単に識別子)

私の古いコードでは、一度に1バイトでそれを読んで、その空白と最後の文字とそのようなsの場合、文字を挿入するか、NULLを挿入するか、文字を無視します。

私はこれをC#コードに変換するのに問題があります。私はStringBuilderクラスを使用して、一度に1つの文字を挿入するためにInsert()を使用しています。しかし、私の問題は文字の値として\ 0を使うことができないということです。どのようにして識別子名を読みやすくすることができるのですか?この場合、文字列または文字列ビルダーオブジェクトの配列を持つ方がよいでしょうか?

答えて

6

List<string>を使用し、一度に1つずつリストに項目を追加することをお勧めします。

これは、文字列の配列の使いやすさをすべて提供しますが、動的に大きくなります。このアプローチを使用する場合、ファイルを解析するC#コードはCコードよりはるかに簡単で理解しやすいはずです。