Хотя ответ Максима специфичен, я собираюсь угадать, что вы хотите что-то сделать с помощью соответствующей функции, которую вы нашли. Чтобы выполнить серьезную обработку кода, вы не можете победить семантический парсер, который является частью набора инструментов CEDET. http://cedet.sf.net также является частью Emacs.
Если используется семантический анализатор в Emacs, вы можете:
M-x semantic-mode RET
, а затем в коде:
(semantic-fetch-tags)
или
(semantic-current-tag)
, чтобы получить текущий тег. После того, как у вас есть тег, вы можете позвонить:
(semantic-tag-function-arguments mytag)
, чтобы получить аргументы, которые являются тегами. Для одного из них используйте semantic-tag-name
, чтобы получить имя, или semantic-tag-type
, чтобы получить тип данных.
Как только вы получили данные своего тега, вы всегда можете выписать новый код с помощью SRecode, который является генератором кода, который будет принимать теги и выплевывать код, например объявления функций.
Что делать, если аргументы также включают круглые скобки? например 'FUNC (х * (у + г))'. –
они не так уж и не проблема в этом случае – bph
Возможно, emacs имеет что-то «встроенное» для комментирования/раскодирования вызовов функций C в обход необходимости явного регулярного выражения? – bph