java.lang.Object
com.github._1c_syntax.bsl.languageserver.context.symbol.SymbolTree

public final class SymbolTree extends Object
Символьное дерево документа. Содержит все символы документа, вложенные друг в друга по принципу родитель -> дети
  • Constructor Details

  • Method Details

    • getChildren

      public List<SourceDefinedSymbol> getChildren()
      Returns:
      Список символов верхнего уровня за исключением символа модуля документа.
    • getChildrenFlat

      public <T> List<T> getChildrenFlat(Class<T> clazz)
      Список всех символов всех уровней указанного типа (за исключением символа модуля документа), преобразованных в плоский список.
      Type Parameters:
      T - тип искомого символа.
      Parameters:
      clazz - класс искомого символа.
      Returns:
      плоский список символов указанного типа.
    • getModuleLevelRegions

      public List<RegionSymbol> getModuleLevelRegions()
      Returns:
      Список областей, расположенных на верхнем уровне документа.
    • getRegionsFlat

      public List<RegionSymbol> getRegionsFlat()
      Returns:
      плоский список всех областей документа.
    • getMethodSymbol

      public Optional<MethodSymbol> getMethodSymbol(BSLParserRuleContext ctx)
      Попытка поиска символа метода по узлу дерева разбора.

      Implementation note - Поиск осуществляется по месту определения метода (declaration).

      Parameters:
      ctx - узел дерева разбора документа.
      Returns:
      найденный символ метода.
    • getMethodSymbol

      public Optional<MethodSymbol> getMethodSymbol(String methodName)
      Поиск MethodSymbol в дереве по указанному имени (без учета регистра).
      Parameters:
      methodName - Имя метода
      Returns:
      MethodSymbol, если он был найден в дереве символов.
    • getVariableSymbol

      public Optional<VariableSymbol> getVariableSymbol(BSLParserRuleContext ctx)
      Попытка поиска символа переменной по узлу дерева разбора.

      Implementation note Поиск осуществляется по месту определения переменной (declaration).

      Parameters:
      ctx - узел дерева разбора документа.
      Returns:
      найденный символ переменной.
    • getVariableSymbol

      public Optional<VariableSymbol> getVariableSymbol(String variableName, SourceDefinedSymbol scopeSymbol)
      Поиск VariableSymbol в дереве по указанному имени (без учета регистра) и области объявления.
      Parameters:
      variableName - Имя переменной
      scopeSymbol - Символ, внутри которого осуществляется поиск. Например, ModuleSymbol или MethodSymbol.
      Returns:
      VariableSymbol, если он был найден в дереве символов.
    • getModule

      public ModuleSymbol getModule()
      Корневой символ модуля документа.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • getChildrenFlat

      public List<SourceDefinedSymbol> getChildrenFlat()
      Список всех символов всех уровней (за исключением символа модуля документа), преобразованных в плоский список.
    • getMethods

      public List<MethodSymbol> getMethods()
      Список методов документа.
    • getMethodsByName

      public Map<String,MethodSymbol> getMethodsByName()
    • getVariables

      public List<VariableSymbol> getVariables()
      Плоский список всех переменных документа
    • getVariablesByName

      public Map<SourceDefinedSymbol,Map<String,VariableSymbol>> getVariablesByName()