У меня есть приложение C#, которое генерирует встроенный код C с использованием шаблонов T4. Однако у меня есть небольшая проблема с результирующим выходом, о котором я задаюсь вопросом, есть ли элегантное решение.T4 редактирование сгенерированного кода в его сгенерированном
Этот вопрос я петля вокруг как для петель и Еогеаспа для создания перечислений и других таблиц, используя следующий шаблон T4:
typedef enum eSDef_Index
{
<# for (int i = 0; i < ScreenDefinitions.Count(); i++)
{ #>
SD_IDX_<#=ScreenDefinitions[i].Name.ToUpper() #> = <#=i#>,
<# }
// >>>> Can we do a backspace here?
#>
}eSDEF_INDEX;
Это успешно создает перечисление я хочу. Однако компилятор C, который я использую, не любит, чтобы последняя запись enum имела запятую. Я мог бы исправить это, проверив, является ли это последним элементом в списке, однако я задаюсь вопросом, есть ли более эльгетический способ?
Моя идея состояла в том, чтобы эффективно удалить последнюю запятую после ее генерации, используя, возможно, обратное пространство.
. Можно ли добавить специальные символы, которые непосредственно влияют на сгенерированный код? или любой другой способ сделать это?
Я нашел немного больше информации, которая является то, что вы можете использовать PushIndex ("\ т"), чтобы вставить вкладку. Поэтому можно было бы предположить (?), Что вы можете сделать PushIndex («\ b»), чтобы сделать backspace, однако на самом деле вместо него помещает владелец charater, поэтому не делает так, как я ожидал бы :( – TheGrovesy
Какой компилятор вы используете (что не соответствует) – Luca
@Luca его очень старый компилятор ST Cosmic. – TheGrovesy