Господа,
помогите напиcать RE для поиска функций для Си языка.
все сейчас перерыл, но так ничего путнего и не нашел. разбираться посностью с рег -Експами нет времени, как нить на досуге.
Здравствуйте, IIIypuk, Вы писали:
III>помогите напиcать RE для поиска функций для Си языка.
Что значит "поиск функций"? определение функции, объявление, использование?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Erop, Вы писали:
E>Здравствуйте, IIIypuk, Вы писали:
III>>помогите напиcать RE для поиска функций для Си языка. E>Что значит "поиск функций"? определение функции, объявление, использование?
определение, в общем задача состоит в том чтобы определить какие функции определены в модуле, т.е. начало и собственно конец, там где функция закончилась.
III>определение, в общем задача состоит в том чтобы определить какие функции определены в модуле, т.е. начало и собственно конец, там где функция закончилась.
Что будем делать с макросами, которые разворачиваются в определение функций?
с #if 0 / #endif ?
одним регэкспом я бы такое делать не стал.
Как минимум сначала пройтись "препроцессором" (макросы/диграфы/триграфы и удаление комментариев), тогда в чистом коде найти функции в "современном" виде найти будет несложно. Если не требуется находить еще и стиль K&R.
Блин, много вас халявщиков — разбираться не буду, сделайте работу за меня, а я уж так и быть сделаю вам услугу и на досуге почитаю. Непонятно зачем это кому-либо (с другой стороны, альтруисты еще встречаются). Одно дело помочь кому-то, кто пытался что-то сделать, тут и себе выгода есть — сам лучше разобраться сможешь, может чего нового услышать. А так, просто потворство лени.
Здравствуйте, IIIypuk, Вы писали:
III>Господа, III>помогите напиcать RE для поиска функций для Си языка. III>все сейчас перерыл, но так ничего путнего и не нашел. разбираться посностью с рег -Експами нет времени, как нить на досуге.
III>Нужна строка именно для RegExp из boost`а.
Язык Си не описывается регулярными выражениями. Именно поэтому если вопрос имеет практический смысл, то решается он по-другому (смотрите парсеры кода, вроде VivaCore).
Здравствуйте, Евгений Рыжков, Вы писали:
ЕР>Здравствуйте, IIIypuk, Вы писали:
III>>Господа, III>>помогите напиcать RE для поиска функций для Си языка. III>>все сейчас перерыл, но так ничего путнего и не нашел. разбираться посностью с рег -Експами нет времени, как нить на досуге.
III>>Нужна строка именно для RegExp из boost`а.
ЕР>Язык Си не описывается регулярными выражениями. Именно поэтому если вопрос имеет практический смысл, то решается он по-другому (смотрите парсеры кода, вроде VivaCore).
ЕР>Евгений Рыжков ЕР>ООО "СиПроВер"
да мне не нужно что-то не заурядное, чистый си. многие редакторы именно через регекспы, вот и попросил набросать. конечно если заниматься более серьезным то надо копать в строну синтаксического и лексического анализатора.
Здравствуйте, K13, Вы писали:
III>>определение, в общем задача состоит в том чтобы определить какие функции определены в модуле, т.е. начало и собственно конец, там где функция закончилась.
K13>Что будем делать с макросами, которые разворачиваются в определение функций? K13>с #if 0 / #endif ?
K13>одним регэкспом я бы такое делать не стал. K13>Как минимум сначала пройтись "препроцессором" (макросы/диграфы/триграфы и удаление комментариев), тогда в чистом коде найти функции в "современном" виде найти будет несложно. Если не требуется находить еще и стиль K&R.
не нужны такие макросы и т.п.. Нужны чистые функции.
вида <type><разделитель><name>(<param>)<разделитель>{
где <type> и <param> могут отсутствовать.