2009-08-11 65 views
1

我已经在C之前做了一个基本的解释器,其中有一个预处理器,这个预处理器花费了大量的解析负载。我想现在将这个预处理器移植到C#中使用,而且我遇到了麻烦,因为我对C#还很陌生。将文件预处理代码从C移植到C#

我的老预处理器使它所以像

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

会出来的东西相当机器可读的

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

(以\ 0被空,这样我可以得到的变量名和标识符很容易)

那么,用我的旧代码,我一次读取一个字节,并根据它的空白以及最后一个字符和这样的wa s,那么它会插入该字符,插入NULL或忽略该字符。

那么我很难把它转换成C#代码。我正在使用StringBuilder类,并使用Insert()一次插入一个字符。但我的问题是我不能使用\ 0作为字符值。我如何制作标识符名称仍然非常容易阅读?在这种情况下,最好是有一组字符串还是字符串生成器对象?

回答

6

我会推荐使用List<string>,并一次添加一个项目到列表中。

这给你所有的字符串数组的可用性,但它会动态增长。如果你使用这种方法,解析你的文件的C#代码应该比C代码更加简单和容易理解。