Может ли кто-нибудь указать мне на программу, которая удаляет строки из исходного кода C? Пример
#include <stdio.h>
static const char *place = "world";
char * multiline_str = "one \
two \
three\n";
int main(int argc, char *argv[])
{
printf("Hello %s\n", place);
printf("The previous line says \"Hello %s\"\n", place);
return 0;
}
становится
#include <stdio.h>
static const char *place = ;
char * multiline_str = ;
int main(int argc, char *argv[])
{
printf(, place);
printf(, place);
return 0;
}
Я ищу программу, очень похожую на stripcmt, только то, что я хочу разделить строки а не комментарии.
Причина, по которой я ищу уже разработанную программу, а не просто какое-то удобное регулярное выражение, заключается в том, что, когда вы начинаете рассматривать все угловые случаи (кавычки в строках, многострочные строки и т. Д.), Вещи обычно начинают быть (намного) более сложными, чем они впервые появляется. И есть ограничения на то, чего могут достичь RE, я подозреваю, что это невозможно для этой задачи. Если вы действительно считаете, что у вас чрезвычайно надежное регулярное выражение, не стесняйтесь отправлять, но, пожалуйста, никаких наивных sed 's/"[^"]*"//g'
советов.
(Нет необходимости в специальной обработке (возможно, незавершенных) строк в комментариях, они будут удалены первыми)
Поддержка многострочных строк со встроенными символами новой строки не важна (не допустимо для C), но должны поддерживаться строки, охватывающие несколько строк, заканчивающихся символом \ в конце.
Это почти то же самое, что и некоторые другое questions, но я не нашел ссылок на какие-либо инструменты.