Я расширяю GNUCPPSourceParser
для разбора языка, основанного на C ++.Некоторые части языка всегда будут чистым C ++.Однако добавлены некоторые дополнительные ключевые слова и конструкции, для которых мое расширение синтаксического анализатора создает абстрактные элементы дерева синтаксиса.Например, конструкция:
worker class(int b, int c) {
...
}
принята моим расширением парсера.«рабочий класс» - это одно ключевое слово, за которым следуют скобки с необязательным списком параметров.
Элемент AST, который я выбрал для этого, - ICPPASTNamespaceDefinition
.Я не пытался продлить AST до сих пор.Эти интерфейсы всегда обозначаются
@noextend This interface is not intended to be extended by clients.
@noimplement This interface is not intended to be implemented by clients.
Теперь я хочу изменить способ отображения этого пространства имен в представлении структуры.
Для первой попытки я хочу изменить значок.Но я не вижу, где он установлен и какой класс или интерфейс мне нужно расширять.Я также не видел ни одной точки расширения, которая могла бы быть здесь полезной.