реклама на сайте
подробности

 
 
> Макрогенератор и исходник, предпочтения
_Pasha
сообщение Sep 27 2016, 05:24
Сообщение #1


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Привет.
Всем известна такая штучка как COG
С другой стороны, люди могут не жаловать такой подход и обходиться автогенерируемыми файлами, которые потом инклюдятся в файл исходника.
С третьей стороны, этот cog-подобный подход может не ограничиваться одним языком(питон), может обладать полной настройкой всех своих служебных комбинаций символов.
Вот собсна, интересно мнение ув. ALL за/против.
Есть ли смысл увлечься макрогенераторами прямо в тексте исходника?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Pasha
сообщение Sep 28 2016, 10:26
Сообщение #2


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



вот например
Код
/*++(input)
u-set "u" parameter
d-set "d" parameter
k-set "k" parameter
--*/

/*++
#!/usr/bin/python
from Macro_For_C import *
with Source("input") as f:
    txt = f.readlines()
    f.close()
out=Source("out1")
out2=Source("out2")
for x in txt:
    out.print("printf(""{0} \n\r"")".format(x))
    out2.print("case '{0}': <do something>; break;//{1}\n\r".format(x[0],x[1:]))
--*/

void help(void)
{
//++(out1)
//--
}
void console(char c){
    switch(c)
    {
    //++(out2)
    //--
        default:
            break;
    }
}

тэги, ессно, настраиваются както в стилевом файле под свой вкус, с возможностью натравить макрогенератор на множество исходников и сменить их одним вызовом программы.
кста, программа не скриптовая, думаю. она просто процессы вызывает исходя из того, что нашла в тексте

ps поправил, заменил /*++(тэг)... --*/ на соответственно //++ и --//
а то нелогично как-то

Сообщение отредактировал _Pasha - Sep 28 2016, 11:11
Go to the top of the page
 
+Quote Post
AlexandrY
сообщение Sep 28 2016, 10:43
Сообщение #3


Ally
******

Группа: Модераторы
Сообщений: 6 232
Регистрация: 19-01-05
Пользователь №: 2 050



Цитата(_Pasha @ Sep 28 2016, 13:26) *
вот например


Чё, интересно, парсер будет делать с таким исходником.
Скорее всего ничего, просто проигнорирует.
Для парсинга и анализа такой исходник потерян.
Go to the top of the page
 
+Quote Post
_Pasha
сообщение Sep 28 2016, 11:08
Сообщение #4


;
******

Группа: Участник
Сообщений: 5 646
Регистрация: 1-08-07
Пользователь №: 29 509



Чуть поправлю фрагмент кода.
Цитата(AlexandrY @ Sep 28 2016, 13:43) *
Чё, интересно, парсер будет делать с таким исходником.
Скорее всего ничего, просто проигнорирует.
Для парсинга и анализа такой исходник потерян.

А, так здесь подразумевается, что прогон через макрогенератор, - это отдельный этап, результаты генерации пишутся в места, отмеченные соотв. тэгами.
Далее, я так думаю, напечатанный в исходнике результат - помечается CRC32 и если юзер внес правки в уже сгенеренный код - обновлений при автогенерации не будет.
да и тэги можно удалить, "присвоив" результат
либо скомандовать clean самому макрогенератору - он удалит то что получил ранее
т.е. метод раскрутки чистой воды

Сообщение отредактировал _Pasha - Sep 28 2016, 11:25
Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 13:33
Рейтинг@Mail.ru


Страница сгенерированна за 0.01322 секунд с 7
ELECTRONIX ©2004-2016