Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> анализ кода языка Си или C++, flex,lex,ragel,bison,yacc что угодно 
V
    Опции темы
dershokus
Дата 28.2.2013, 19:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 7.8.2011

Репутация: 1
Всего: 1



 Здравствуйте. Требуется разобрать исходник c/c++ файла. Есть лексические (lex,flex,ragel) и синтаксические (yacc, bison) анализаторы, но тогда мне пидется описать всю лексику и граматику. Если для Си это я еще себе представляю, то для С++ - сомнительно smile.
 Знаю про Clang API, но мне желательно иметь кросс-платформенную либу, которую сможет юзать другое приложение.
 Извиняюсь, если запостил не туда, не нашел подходящего места.
PM MAIL   Вверх
Amp
Дата 28.2.2013, 20:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 886
Регистрация: 17.2.2009

Репутация: 3
Всего: 17



Цитата(dershokus @  28.2.2013,  19:20 Найти цитируемый пост)
 Знаю про Clang API, но мне желательно иметь кросс-платформенную либу, которую сможет юзать другое приложение.

Так он же кроссплатформенный. И в том числе в виде библиотеки.
PM MAIL   Вверх
dershokus
Дата 1.3.2013, 09:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 7.8.2011

Репутация: 1
Всего: 1



Всеже интересно, есть ли *.l или *.rl и прочее для си и си++?
PM MAIL   Вверх
bsa
Дата 1.3.2013, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



dershokus, для С есть, для С++ нет. Почитай статью Редкая профессия
PM   Вверх
dershokus
Дата 1.3.2013, 12:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 7.8.2011

Репутация: 1
Всего: 1



 bsa, может быть это наивный вопрос, но почему их нет? Я много искал что-то такое, но тоже ничерта не находил. Си++ такой синтаксически сложный язык?
PM MAIL   Вверх
bsa
Дата 1.3.2013, 13:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 63
Всего: 196



Цитата(dershokus @  1.3.2013,  13:01 Найти цитируемый пост)
Си++ такой синтаксически сложный язык? 
Невероятно. Почитай статью. Читается, как роман.
PM   Вверх
dershokus
Дата 1.3.2013, 13:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 82
Регистрация: 7.8.2011

Репутация: 1
Всего: 1



bsa, большое спасибо за обьяснение smile
PM MAIL   Вверх
kamre
Дата 2.3.2013, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



Цитата(dershokus @ 1.3.2013,  12:01)
Си++ такой синтаксически сложный язык?

Конечно, сложный. До сих пор ни одна IDE для C++ не умеет делать корректно такой рефакторинг как rename.
PM MAIL   Вверх
SaDFromSpb
Дата 6.3.2013, 18:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 5.4.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 3



Цитата(kamre @  2.3.2013,  16:58 Найти цитируемый пост)
До сих пор ни одна IDE для C++ не умеет делать корректно такой рефакторинг как rename. 

Eclipse (Juno) справляется с rename'ом. Пользовался не раз. Не могу точно утверждать, что проблем не было никогда (может не помню), но обычно прекрасно работает. Вообще она на удивление хорошо с синтаксисом справляется. С++11 лямбды понимает, подсказывает, что виртуальный деструтор нужно бы добавить в базовый класс и все такое...
Одна из самых приятных вещей - на лету (по наведению мыши) разворачивает заумные финты на препроцессоре. А то мы с коллегами иногда любим на BOOST_PP наворотить зла =)



--------------------
"За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001)
PM   Вверх
kamre
Дата 6.3.2013, 19:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 330
Регистрация: 24.3.2006

Репутация: 1
Всего: 13



Цитата(SaDFromSpb @ 6.3.2013,  18:23)
Eclipse (Juno) справляется с rename'ом.

Сам пользуюсь CDT (ничего лучше пока не нашел для себя), так что точно знаю, что некорректно rename делается. На тривиальном коде с препроцессором/шаблонами молча ломает код при rename до не компилируемого состояния.

Код

#define call_func(x) x.func();

template <typename T>
void call_func_templ(T t) { t.func(); }

struct A {
  void func() {}  // <== rename this function
};

struct B {
  void func() {}
};

int main()
{
  A a;
  B b;
  call_func(a);
  call_func(b);
  call_func_templ(a);
  call_func_templ(b);
}

PM MAIL   Вверх
SaDFromSpb
Дата 7.3.2013, 12:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 5.4.2006
Где: Санкт-Петербург

Репутация: 3
Всего: 3



kamre
Ах он сволочь! В дефайне переименовал тоже! Не ожидал.
Теперь согласен! =)



--------------------
"За исключением части, касающейся потоков, библиотека Loki написана на стандартном языке С++. Увы, это означает, что многие современные компиляторы не смогут работать с ней в полном объеме." (А. Александреску. Modern C++ design. 2001)
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1339 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.