|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Ноя 1, 2003 00:11:41 Я поискал на форуме ссылки на такие посты, но нашёл только один, да и то пустой. Вопрос такой: Где взять хороший конвертер (или не очень, но с исходником, что б можно было дальше развить) заголовочных файлов C в .inc? И модулей ObjectPascal опять же в заголовочный файл Ассемблера. Другой вопрос, что какое-нибудь средство, пригодное, для обработки текстов рядовому ассемблерщику просто необходимо. Поскольку на асме это, разумеется, возможно, но крайне муторно. ;) А задачи, в которых это требуется, периодически возникают. Те же хедеры сконвертить под используемый ассемблер. ;) Кстати, на перле это чаще всего можно сделать одной строчкой... bsl_zcs сказал это ещё в июле, а есть ли где-нибудь пример скрипта такого или ссылка, где можно найти такое или как сделать самому на Perl? Очень бы хотелось, а то вручную конвертировать файлы из PlatformSDK слишком долго! |
|
|
Дата: Ноя 1, 2003 01:25:21 Сабж = FF |
|
|
Дата: Ноя 1, 2003 01:46:58 Сабж = FF Прошу прощения, а что это значит? И ещё вопрос: почему не всегда работают кнопочки? |
|
|
Дата: Ноя 1, 2003 01:49:46 2B OR (NOT 2B) = FF Какие кнопочки? |
|
|
Дата: Ноя 1, 2003 02:04:40 Кнопки изменения стиля текста в редактируемом сообщении. И всё же, что это означает? 2B OR (NOT 2B) = FF И как насчёт темы? |
|
|
Дата: Ноя 1, 2003 02:16:48 Так 2B or not 2B как раз в теме :) Если серьёзно, для простых H 2 inc существует утилита. Есть в пакете MASM. Для сложных не годится, приходится править руками. |
|
|
Дата: Ноя 1, 2003 02:43:08 · Поправил: IceStudent А, теперь понял :) Насчёт h2inc — я её давно приметил, но быстро обломался! Написал простую, конвертирует константы, определения типов, комментарии (:)), простые структуры и ещё кой-чего. Но я замучился её писать, а хотелось бы ещё расшширять, чтобы читала новые определения из чего-то (базы или уже готового файла заголовочного, или чтоб пользователь (я) вводил, когда запнётся). Я понимаю, что интелект человека не заменишь, тем более, программиста, но меня увлекла мысль о Perl, которую высказал bsl_zcs. Ведь можно такое сделать? Так, сегодня, судя по всему, желающих нема. Ладно, но я этого так не оставлю... |
|
|
Дата: Ноя 1, 2003 05:26:27 Asterix, не подскажешь? |
|
|
Дата: Ноя 1, 2003 06:31:23 На Perl можно написать всё что угодно, но я конвертацией хидеров не занимался ;-) |
|
|
Дата: Ноя 1, 2003 06:41:20 Эх, придётся дожидаться bsl_zcs... Одной строчкой кода... |
|
|
Дата: Ноя 1, 2003 10:55:05 IceStudent, "одной строчкой кода" тут дело не решить. Осмелюсь предположить, что двумя, и даже тремя, это тоже не решается :-) Строчек будет много... ОЧЕНЬ МНОГО... Боюсь даже настолько много, что человек за это взявшийся может сильно пожалеть о "бесцельно прожитых годах" :-))) Хотя, могу и ошибиться. Я предлагаю более реальный вариант. Практически все структуры (а может и перечисления тоже) можно вытянуть из PDB файлов. Для этого есть хорошо документированный интерфейс. В общем, сливай эту тулзень http://pdbdump.sourceforge.net/ - это типа образец. Бери DIA SDK (есть на сайте), открывай соответствующий раздел в MSDN и вперед. Если COM не знаешь, то придется перед этим его изучить. |
|
|
Дата: Ноя 1, 2003 14:21:23 IceStudent: Такой большой, а в сказки веришь. :( Надо же соизмерять сложность проблем и предполагаемых решений. Разумеется, одной строчкой могут делаться только самые простые вещи. Особенно, без использования сторонних продвинутых библиотек. Прошу прощения у всех присутствующих, если я кого-то ввёл в заблуждение. Конкретно та строка, что имел в виду я, дёргает из сишного хедера только константы, а всё остальное забивает в коментарии. Если тебе ещё интересно, то вот она: perl -n -e "chomp; print /^#define (\w+)(\s+)([\w\.]+)(.*)/ ? qq/$1 $2= $3 ;$4\n/ : qq/; $_\n/" GL.H >gl.incПишется как есть в командной строке. Это слегка упрощённая версия того, чем я когда-то OpenGL-овские хедеры в fasm-овский формат конвертил для своей 4k интрухи. Подчеркну: я не позиционирую это как правильный стиль перлового программирования, такая запись может испугать кого угодно. Это просто пример того, что примитивная обработка текста может быть довольно компактной. Теперь касательно сторонних продвинутых библиотек: на cpan-е есть несколько модулей, которые обещают парсить сишные исходники. В частности, C::Scan. Сам я его не пробовал, поэтому гарантировать ничего не могу, но строк в нём действительно не две и не три. ;) Интерфейс довольно прозрачен, я думаю, попробовать можно. Во всяком случае, если мне вдруг перестанет хватать одних констант, я для начала поэкспериментирую именно с ним. К тому же, этот модуль используется в родном перловом конверторе h2xs. Если этот модуль не поможет, можно будет посмотреть в сторону каких-нибудь yacc-ов с lexx-ами, опять же, сам не пробовал, но полагаю, что из них можно смастерить весьма продвинутый конвертор. Было бы желание. В общем, удачи тебе в этом нелёгком деле. ;) |
|
|
Дата: Ноя 1, 2003 19:39:31 Совершенно верно. Лучше писать это на yacc/lex. Перл - это классно, но лучше использовать родные вещи, специально под это дело заточенные. Брать и конвертить. Во второй части пакеров давал линк. Сейчас не помню. Смотреть на codeproject.com bsl_zcs - любитель пинаться, привет! Рад тебя видеть. |
|
|
Дата: Ноя 2, 2003 17:37:35 volodya Во второй части пакеров давал линк А что, вторая часть уже вышла? Где ее можно почитать? |
|
|
Дата: Ноя 2, 2003 18:27:50 Max На сайте через 2-3 дня. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.103 |