Извините, но ни фига Вы это регекспом не напишите. Уж поверьте. Даже в самом простом случае:
void Foo(const A x) {}
Вам требует знать тип A. Если A это int, то ругаться смысла нет. Если это класс, то стоит ругнуться. Хотел бы я посмотреть, как вы регекспом будете в Си++ программе раскрывать тип.
«Есть порой очень специфические правила, которые разработчик встраивать в свою систему не будет».
А вот с этим проблем никаких нет. У нас уже есть пара правил сделанных на заказ. Они весьма специфичны, но по умолчанию отключены и никак другим не мешают.
Да, сейчас такого интерфейса нет. Его можно сделать, но это огромная задача. И главная она практически не имеет смысла. Хоть сколько-нибудь серьезное правило стороннему человеку будет крайне сложно/невозможно реализовать самостоятельно. Возникает вопрос, если реализация требует погружения в область статического анализа, а так же собственно требует усилий на реализацию, то не лучше ли использовать свои силы для своих проектов, а реализацию правил передать людям которые сделают это быстрее и дешевле. Следует понимать, что реализация самому дороже, чем оплата этой реализации (например, нам).
«Пока мерил заметил, что вызывается компилятор для препроцессинга, появляются файлы *.i.»
Да. Мы пока вынуждены использовать для препроцессирования файлов компилятор Visual C++.
Что-то пошло не так. Помогите разобраться. Прошу написать мне в почту karpov[@]viva64.com. Если возможно, сгенерируйте *.i файл, упакуйте и пришлите мне. Это можно сделать, установив в настройках «не удалять временные файлы».
Как я понимаю, вы смотрите на предупреждения, относящиеся к проверке 64-битных программ. Отожмите кнопку «64».
p.s. В статье описано как это сделать и даже картинка есть. :)
Это кстати печально. Я подозреваю, что это несколько нам портит рейтинг, озлобляет на наши письма спамфильтры и так далее. Я уже даже жаловался немного на это.
Анализ общего назначения будет бесплатен. Каждый сможет скачать и попробовать без ограничений новый набор правил.
А как дальше пойдет развития загадывать рано. Может спонсора найдем и тогда так и останемся бесплатными и может даже станем open source. Быть может захотим продавать. Сейчас рано думать. Слабоваты мы. В начале надо увеличить базу ошибок, понравиться людям и так далее.
Вам требует знать тип A. Если A это int, то ругаться смысла нет. Если это класс, то стоит ругнуться. Хотел бы я посмотреть, как вы регекспом будете в Си++ программе раскрывать тип.
Не знаете предметную область — не пишите.
А вот с этим проблем никаких нет. У нас уже есть пара правил сделанных на заказ. Они весьма специфичны, но по умолчанию отключены и никак другим не мешают.
Да. Мы пока вынуждены использовать для препроцессирования файлов компилятор Visual C++.
p.s. В статье описано как это сделать и даже картинка есть. :)
1) Буковки не понравились
V525 The code containing the collection of similar blocks. Check items ''f'', ''m'', ''l'', ''f'' in lines 1171, 1172, 1173, 1174.
2) Функции не понравились
V524 It is odd that the 'GetViewFilePos' function is fully equivalent to the 'GetFilePos' function (viewer.hpp, line 226).
Можно конечно написать одну через другую, но от этого совсем не станет лучше.
3) Циклы не понравились
V535. The variable 'c' is being used for this loop and for the outer loop
Хоть два цикла по одной переменной, это не страшно, так как мы потом сразу сделаем return r;.
Это совсем не дорого по сравнения с…
А как дальше пойдет развития загадывать рано. Может спонсора найдем и тогда так и останемся бесплатными и может даже станем open source. Быть может захотим продавать. Сейчас рано думать. Слабоваты мы. В начале надо увеличить базу ошибок, понравиться людям и так далее.