将文件预处理代码从C移植到C#

时间:2009-08-11 01:05:36

标签: c# c string c-preprocessor porting

我之前在 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为NULL,这样我就可以很容易地得到变量和标识符的名称)

好吧,使用我的旧代码,我一次只能读取一个字节,并且取决于它的空格和最后一个字符是什么,然后它会插入字符,插入NULL或忽略字符。

好吧,我无法将其转换为C#代码。我正在使用StringBuilder类并使用Insert()一次插入一个字符。但我的问题是我不能使用\ 0作为字符值。如何使标识符名称仍然非常容易阅读呢?在这种情况下,拥有一个字符串数组或字符串构建器对象会更好吗?

1 个答案:

答案 0 :(得分:6)

我建议您使用List<string>,并一次向列表中添加一个项目。

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