Форум программистов, компьютерный форум CyberForum.ru

Анализатор С++ кода - C++

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.83
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
11.02.2013, 17:43     Анализатор С++ кода #1
Доброго времени суток.

Задача - разработать анализатор исходного кода на языках С++ с выявлением ошибок оформления (отступы пробелы, именование переменных и т.д.). Бьюсь третий месяц. Смотрел решения от ANTLR - куча грамматик, не работает ни одна.

Поступило предложение поковырять GCC, сделать dll-ку под C# и написать VS Package на C#. Перспектива лопатить GCC не улыбает никак ...

Например, для C# появилось просто УМОПОМРАЧИТЕЛЬНОЕ средство под названием Roslyn, которое великолепно парсит сорцы шарпа.

Пожалуйста, подскажите - куда мне копать, потому что я не могу найти ничего стоящего, чтобы запилить всё это дело под C# (

Заранее, спасибо
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
diagon
Higher
 Аватар для diagon
1921 / 1187 / 49
Регистрация: 02.05.2010
Сообщений: 2,925
Записей в блоге: 2
11.02.2013, 20:39     Анализатор С++ кода #2
Т.е. то, что компиляторы с трудом парсят с++, вас не смущает?
Можете посмотреть в сторону clang'a, он парсит плюсы лучше аналогичных компиляторов + выдает достаточно неплохое AST.
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
11.02.2013, 23:44  [ТС]     Анализатор С++ кода #3
diagon, меня это смущает ещё со времени написания курсовой работы, когда надо было написать 2 парсера - один для шарпа, другой для плюсов ) только в тот раз отделался тем, что используемое средство ANTLR не позволяет создать полноценный парсер для C++, тем более зашитый под сборку C#.

Как я понимаю, clang работает под линукс? Как-то в Windows его можно интегрировать?
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
11.02.2013, 23:48     Анализатор С++ кода #4
Цитата Сообщение от I.B. Посмотреть сообщение
Как я понимаю, clang работает под линукс? Как-то в Windows его можно интегрировать?
http://habrahabr.ru/post/167281/
xtorne21st
интересующийся
300 / 271 / 19
Регистрация: 25.09.2010
Сообщений: 1,056
12.02.2013, 02:40     Анализатор С++ кода #5
Цитата Сообщение от I.B. Посмотреть сообщение
Доброго времени суток.
Задача - разработать анализатор исходного кода на языках С++ с выявлением ошибок оформления (отступы пробелы, именование переменных и т.д.). Бьюсь третий месяц. Смотрел решения от ANTLR - куча грамматик, не работает ни одна.
Поступило предложение поковырять GCC, сделать dll-ку под C# и написать VS Package на C#. Перспектива лопатить GCC не улыбает никак ...
Например, для C# появилось просто УМОПОМРАЧИТЕЛЬНОЕ средство под названием Roslyn, которое великолепно парсит сорцы шарпа.
Пожалуйста, подскажите - куда мне копать, потому что я не могу найти ничего стоящего, чтобы запилить всё это дело под C# (
Заранее, спасибо
Можете также глянуть в сторону программы bison выпущенной под лицензией gnu
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
12.02.2013, 22:51  [ТС]     Анализатор С++ кода #6
xtorne21st, бизоновские грамматики падают, пробовал

Jupiter, как раз для VS и надо его собрать, следую инструкциям на сайте clang, на этапе гененарации проекта под студию вылетает ошибка линкёра: fatal error LNK1123: сбой при преобразовании в COFF: файл недопустим или поврежден

Собираю под 10 студию, но также установлена 12, может быть из-за этого причина ошибки?
Jupiter
Каратель
Эксперт C++
6545 / 3965 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
12.02.2013, 22:54     Анализатор С++ кода #7
Цитата Сообщение от I.B. Посмотреть сообщение
Собираю под 10 студию, но также установлена 12, может быть из-за этого причина ошибки?
вероятно, установка 1-го сервис пака для 10-й студии должна решть проблему
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
13.02.2013, 01:03  [ТС]     Анализатор С++ кода #8
Jupiter, поставил обновление, заметил следующее - после того, как make проверяет работоспособность компиляторов, студии и т.д., начинается Lokking for ... (имя файла), причём ни один файл не находит - not found

проделал процедуру сборки ещё раз - то же самое
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
13.02.2013, 09:54     Анализатор С++ кода #9
I.B., можно более подробное описание задания? Складывается впечатление, что это всё можно написать в разумные сроки самостоятельно, если не требуеся поддержка С++11, просто руководствуясь качественным рБНФ.
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
13.02.2013, 10:06  [ТС]     Анализатор С++ кода #10
iama, задание - разработка программного обеспечения для проверки исходных текстов на языке C++ на соответствие заданным правилам оформления.
К правилам оформления относятся отступы, вложенность блоков кода, именование переменных (имена классов), расстановка знаков препинания, пробелы и т.д.

По сути - нужен плагин для студии, который при нажатии заветной клавиши будет выводить в отдельной box список ошибок оформления, можно скакать по ошибкам в стиле родного IntelliSense. Вот для этого и нужен полноценный парсер, я пытался сделать с помощью ANTLR, но грамматика падает

К сожалению, нужна поддержка C++ 11

Что Вы понимаете под словами "качественный РБНФ"?
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
14.02.2013, 22:38  [ТС]     Анализатор С++ кода #11
может быть у меня руки не из того места растут, но я не могу собрать солюшн для студии, чтобы использовать Clang!!!

Делаю всё, как говорится на официальном сайте, и в итоге получаю следующее:


File "C:/Program Files/VisualSVN/bin/build/llvm/utils/llvm-build/llvm-build"
, line 3, in <module>
import llvmbuild
File "C:\Program Files\VisualSVN\bin\build\llvm\utils\llvm-build\llvmbuild\_
_init__.py", line 1, in <module>
from main import main

ImportError: No module named 'main'


-- Configuring incomplete, errors occurred!

С чем это связано?
iama
 Аватар для iama
1249 / 974 / 48
Регистрация: 30.07.2010
Сообщений: 5,297
14.02.2013, 22:53     Анализатор С++ кода #12
Цитата Сообщение от I.B. Посмотреть сообщение
Что Вы понимаете под словами "качественный РБНФ"?
Первая ссылка в гугле.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2013, 16:34     Анализатор С++ кода
Еще ссылки по теме:

Анализатор C++
синтаксический анализатор C++
C++ Подскажите статический анализатор кода C++
C++ Написать анализатор кода, определяющий тип лексем
Vim и статический анализатор кода C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
I.B.
1 / 1 / 0
Регистрация: 04.02.2010
Сообщений: 48
15.02.2013, 16:34  [ТС]     Анализатор С++ кода #13
Нашёл причину ошибки. Clang не собирался под студию из-за Python - сначала поставил 3.3, из-за этого и не собирался. Поставил 2.7.3 - сработало.
Yandex
Объявления
15.02.2013, 16:34     Анализатор С++ кода
Ответ Создать тему
Опции темы

Текущее время: 23:01. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru