2009-08-11 3 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 существо NULL, так что я мог бы получить имена переменных и идентификаторы очень легко)

Ну, с моим старым кодом я читал его в одном байте за раз и в зависимости от того, были ли его пробелы и какой последний персонаж и что такое wa s, то он либо введет символ, либо вставляет NULL, либо игнорирует символ.

У меня возникли проблемы с превращением этого кода в C#. Я использую класс StringBuilder и использую Insert() для вставки одного символа за раз. Но моя проблема в том, что я не могу использовать \ 0 как значение символа. Как мне сделать так, чтобы имена идентификаторов все еще были чрезвычайно просты в чтении? было бы лучше иметь массив строк или объектов строкового построителя в этом случае?

ответ

6

Я бы рекомендовал использовать List<string> и добавлять элементы к списку по одному.

Это дает вам всю удобство использования массива строк, но оно будет динамически расти. Код C# для анализа вашего файла должен быть намного проще и понятнее, чем C-код, если вы используете этот подход.