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

标签 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 作为字符值。我该怎么做才能使标识符名称仍然非常容易阅读?在这种情况下,使用字符串数组或字符串生成器对象会更好吗?

最佳答案

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

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

关于c# - 将文件预处理代码从 C 移植到 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1258013/

相关文章:

python - 从Python中的不同字符串中提取模式

c# - 使用@Json.Encode 时隐藏模型中的字段

c# - 在 ASP.NET 中访问 app.config

c# - 如何使用 OpenGL 和 C# 在屏幕上显示文本

C#使用接口(interface)模拟多重继承有什么好处?

c - 如何在 C GTK 中检测多个按键?

写/读文件冲突

c - 没有监听时如何在套接字上发送消息?

java - 比较字符串的不同方法

java - java用来在内部存储字符串的字符集是哪个?