我之前用 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 作为字符值。我该怎么做才能使标识符名称仍然非常容易阅读?在这种情况下,使用字符串数组或字符串生成器对象会更好吗?
最佳答案
我建议使用 List<string>
,并一次向列表中添加一个项目。
这为您提供了字符串数组的所有可用性,但它会动态增长。如果您使用这种方法,用于解析文件的 C# 代码应该比 C 代码简单得多,也更容易理解。
关于c# - 将文件预处理代码从 C 移植到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1258013/