Ранее я делал базовый интерпретатор в 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 как символьное значение. Как сделать так, чтобы имена идентификаторов по-прежнему были чрезвычайно легко читаемыми? в этом случае было бы лучше иметь массив строк или объектов для построения строк?