LINUX.ORG.RU

Сервис поиска кусков кода.


0

1

Вообще было бы очень интересно встретить такой сервис, который бы мог искать конкретные вещи в кучах кода. Конкретные вещи - это функции с известной сигнатурой. С вариантами перестановки. Захотел найти bool func(char c, int b){}, а тебе нашлось даже bool func(int b, char c){} и даже double func(int b, char c){}

Ответ на: комментарий от maloi

Он что-нибудь кроме тупого поиска по тексту умеет делать? Стартер, как я понял, просил именно поиск по сигнатурам функций. Причем с учетом возможных вариаций.

PS Присоединяюсь к исходному вопросу.

Burbaka ★★
()

Я знаю на чём это можно сделать у себя/для своих проектов

http://hub.opensolaris.org/bin/view/Project+opengrok/WebHome

а из сервисов - только codesearch.google.com, ищет не по сигнатурам, а по регуляркам.

Захотел найти bool func(char c, int b){}, а тебе нашлось даже bool func(int b, char c){} и даже double func(int b, char c){}

Требование довольно бредовое, может вам сразу template<class X, Y> boost::lambda<...> func(const X& foo, const Y& bar) ? Ищите func и не парьте мозг.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

Требование не бредовое. Оно вытекает из желания «найти какую-нибудь функцию, которая возвращает bool и принимает int и char на вход как угодно, в неважно каком порядке».

kiverattes ★☆
() автор топика
Ответ на: комментарий от kiverattes

>найти какую-нибудь функцию, которая возвращает bool и принимает int и char на вход как угодно, в неважно каком порядке

Вот это уже чёткий запрос к базе данных, практически SQL. Это уже не поиск текста, как было изложено в начале.

anonymous
()
Ответ на: комментарий от kiverattes

Как из записи «bool func(char c, int b){}» можно догадаться, «что найти какую-нибудь функцию, которая возвращает bool и принимает int и char на вход как угодно, в неважно каком порядке». Никак не следует.

А если аргументы надо не как угодно, в важно каком порядке? Как будет выглядеть запрос bool func(char c, int b){}? А если возвращаемое значение надо строго int32 или float? Как будет выглядеть запрос bool func(char c, int b){}? И так далее. Вам надо изобретать новый язык запросов.

anonymous
()
Ответ на: комментарий от anonymous

По вашему не следует, по-моему следует. У всех разное мышление и логика своя.

kiverattes ★☆
() автор топика
Ответ на: комментарий от anonymous

Ну по релевантности всё сортируется да и всё.

kiverattes ★☆
() автор топика

Автор hoogle не так давно предлагал желающим поработать над поддержкой других языков - для языков вроде си это может и не принести профита (слишком бедный язык типов в сигнатурах), но для C++ или C# - уже может иметь смысл.

Ну и остаётся ворос в каких репозиториях будет искать такой сервис (в случае hoogle - есть hackage).

quasimoto ★★★★
()
Ответ на: комментарий от kiverattes

> Требование не бредовое. Оно вытекает из желания «найти какую-нибудь функцию, которая возвращает bool и принимает int и char на вход как угодно, в неважно каком порядке».

В оригинале у вас откуда-то вылез вариант с double.

По вашему не следует, по-моему следует. У всех разное мышление и логика своя.

Логика везде одинаковая, а у вас её нету. Поставите чёткую задачу - будет о чём говорить, а пока у вас «пойди туда - не знаю куда» - значит, просматривайте глазами все исходники и ищите функции по вашим невнятным критериям.

slovazap ★★★★★
()
Ответ на: комментарий от slovazap

ему нужно выдумать свой поисковый язык типа SQL.

select from function_def where return_type in (bool, double) and parameters = (char, int);no_order;include_pointers

anonymous
()
Ответ на: комментарий от slovazap

Я не «везде», а «у всех» написал. Чёткая-задача-nazi (-; Не можете говорить о нечётких вещах - не говорите.

kiverattes ★☆
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.