Войти
ПрограммированиеФорумОбщее

AST c++ парсер (2 стр)

Страницы: 1 2
#15
16:49, 17 ноя. 2016

fsmoke
> просто с начала надо хотя бы синтаксический анализ сделать
Ты имеешь в виду "сделать анализ который не сможет разобрать произвольный код, но будет работать на большинстве не слишком сложных примеров кода"? Тогда да. Т.к. пример доказывает что "хотя бы синтаксический анализ" для произвольного кода работать не будет.


#16
18:49, 17 ноя. 2016

kipar
> Ты имеешь в виду
нет
Я имею в виду, что надо начинать писать свой велосипед, а именно лексер, синтаксический анализатор, затем семантический анализатор и в конце всего этого аст получится... пипец

мож все же библиотеки готовые есть.. не хочу я в это влезать

Прошло более 1 года
#17
13:43, 29 авг. 2018

Ну и чем всё закончилось? У меня аналогичная проблема, нужно что-то, что сможет разобрать плюсовый код и выдать ast. clang клёвый, но, насколько я понял, standalone версии нет и нужно собирать вместе с llvm. Для небольшого домашнего проекта это дичь, отладочный билд генерирует 40Гб "мусора" и примерно 30Гб бинарников. Не говоря уже от том, что 4-х ядерный i5 просто умирает при сборке(вплоть до недвижимого указателя мыши), да и сама сборка длится что-то около часа(может даже больше, первый раз собирал - полдня потратил, лол). Ну и, если использовать clang api(заместо clang-c), то сам проект, который использует clang, собирается сильно дольше обычного(и бинарник в отладочном билде 400+Мб). Пока, в качестве рабочего варианта, решил использовать динамическую линковку с libclang и, соответственно, clang-c api. Это почти даже ок, но всё же, может есть какое-то другое решение, которое сможет разобрать с++ 17, и которое можно встроить в целевой проект в качестве зависимости(шоб качалось и собиралось тут же на моём ведре, и не два часа, а хотя бы минут 10).

#18
16:02, 29 авг. 2018

У меня в широких штанинах есть велосипед, но он узко специализированный и без ручного допиливания обязательно не подойдёт.

#19
11:37, 30 авг. 2018

Велосипеды это круто, но допиливать категорически лень.

Страницы: 1 2
ПрограммированиеФорумОбщее

Тема в архиве.