Проблема перечня типов данных для С++ парсера

Issue #447 new
Oleg Sychev repo owner created an issue

На самом деле проблема довольно серьезная, ибо существенно сужает юзабилити парсера в общем случае. Нужно парсить заголовочные файлы, причем именно те, которые использовал юзер (в разных версиях библиотек функции/классы могут отличаться, это и в CRT даже есть если сравнить MS VS и Qt Designer). Их от юзера надо как-то получать, не говоря о проблемах производительности. А если парсится не программа целиком, а фрагмент, то не в каждый фрагмент заголовки с объявлениями типов и вставить то можно.

Тем более, что CorrectWriting - отнюдь не единственный клиент парсера, и функциональность эта универсальна полезна. Есть CppExpression, начинаются еще некоторые проекты. (Вот, кстати, пример. CppExpression в принципе может вводить объявления переменных и типов, только проверяет он выражение - получается что парсеру надо скармливать еще предшаблон кода с заголовочными файлами (данные динамические), потом функцию с переменными, а только в ней оператор выражения. Сейчас объявления и выражение парсятся отдельно.

Для начала нужно обсудить стратегии решения. Отдельный вопрос - можно ли детектировать случаи, когда список типов реально требуется при парсинге и часто ли они появляются. Если там очень редкие случаи, то можно автоотключить если их нет. Или делать предварительный анализ кода на выявление типов.

Пока обсуждаем варианты решения.

Comments (1)

  1. Dmitry Mamontov

    Сейчас вроде бы добился, чтобы баги студентов ушли. Как будет время начну думать над этой проблемой и Q_OBJECT. Пока буду делать реализацию вида проб и ошибок.

  2. Log in to comment