Class SymbolTreeComputer
- All Implemented Interfaces:
Computer<SymbolTree>
Создаёт иерархическую структуру символов документа (модуль, методы, регионы, переменные),
правильно расставляя родительско-дочерние связи между символами.
В дерево также передаются условия препроцессора для объявлений методов, собранные
RegionVariableSymbolComputer в том же обходе, что переменные и регионы.
Эти условия не удерживают AST и остаются доступны после выгрузки содержимого документа.
-
Constructor Summary
ConstructorsConstructorDescriptionSymbolTreeComputer(DocumentContext documentContext, SelfMemberClassifier selfMemberClassifier, EventHandlerClassifier eventHandlerClassifier) -
Method Summary
Modifier and TypeMethodDescriptioncompute()Выполнить вычисление данных.static SymbolTreeempty(DocumentContext documentContext) Создает минимальное и пустое SymbolTree по контексту документа.booleanisUpToDate(SymbolTree symbolTree) Годно ли для документа дерево, построенное по тому же его тексту.
-
Constructor Details
-
SymbolTreeComputer
public SymbolTreeComputer(DocumentContext documentContext, SelfMemberClassifier selfMemberClassifier, EventHandlerClassifier eventHandlerClassifier)
-
-
Method Details
-
compute
Description copied from interface:ComputerВыполнить вычисление данных.- Specified by:
computein interfaceComputer<SymbolTree>- Returns:
- Вычисленные данные
-
isUpToDate
Годно ли для документа дерево, построенное по тому же его тексту.Кроме текста, дерево зависит от привязки документа к метаданным и от того, как классификаторы ответили на вопросы о его методах и голых присваиваниях, — а их ответы держатся на членах чужих модулей и типов. Дерево годно, если привязка та же и классификаторы отвечают то же самое. Голые присваивания переспрашиваются по переменным с неявным объявлением. Объявления циклов от классификатора реквизитов не зависят и в этой проверке не участвуют.
- Parameters:
symbolTree- дерево, построенное по тому же тексту документа.- Returns:
true, если построение заново дало бы то же дерево.
-
empty
Создает минимальное и пустое SymbolTree по контексту документа.Дерево содержит только ModuleSymbol с пустыми диапазонами.
- Parameters:
documentContext- Контекст документа- Returns:
- Пустое дерево символов.
-