# ********************************************************** #
# Defines the analyzer for the document tree #
# ********************************************************** #

Imports:
  - Types:
      - DocumentRoot
    From: goga/ast/nodes
  - Types:
      - ASTRuleError
    From: goga/ast/errors
  - Types:
      - ASTRule
    From: goga/ast/rules

Usages:
  conventions: .goga/usages/conventions.md

Annotations: |
  When developing and testing: follow the practice `conventions`.

---

"Analyzer(tree: list[DocumentRoot])":
  location: analyzer.py
  annotations: |
    Analyzes all documents in the tree for validation errors.

    `tree`: the document tree to analyze
  properties:
    tree -> list[DocumentRoot]: |
      The document tree passed at construction.
  methods:
    "analyze(rules: list[ASTRule]) -> errors:list[ASTRuleError]": |
      Analyze all documents against the specified tree-level rules.

      `errors`: list of errors after applying rules

---

Author: Mikhail Trifonov
CreatedAt: 11/04/26

Description: |
  Defines the analyzer for the CODEMANIFEST document tree.
