"""Kida AST node definitions.

Re-exports all nodes for backward compatibility: from kida.nodes import X
"""

from __future__ import annotations

from kida.nodes.base import Node
from kida.nodes.control_flow import (
    AsyncFor,
    Break,
    Continue,
    For,
    If,
    Match,
    While,
)
from kida.nodes.expressions import (
    AnyExpr,
    Await,
    BinOp,
    BoolOp,
    Compare,
    Concat,
    CondExpr,
    Const,
    Dict,
    Expr,
    Filter,
    FuncCall,
    Getattr,
    Getitem,
    InlinedFilter,
    List,
    LoopVar,
    MarkSafe,
    Name,
    NullCoalesce,
    OptionalGetattr,
    OptionalGetitem,
    Pipeline,
    Range,
    Slice,
    Test,
    Tuple,
    UnaryOp,
)
from kida.nodes.functions import CallBlock, Def, DefParam, Region, Slot, SlotBlock
from kida.nodes.output import (
    Autoescape,
    Data,
    FilterBlock,
    Flush,
    Output,
    Raw,
    Spaceless,
    Trim,
)
from kida.nodes.structure import (
    Block,
    Cache,
    Embed,
    Extends,
    FromImport,
    Globals,
    Import,
    Imports,
    Include,
    Template,
    TemplateContext,
    With,
    WithConditional,
)
from kida.nodes.variables import Capture, Export, Let, Set

__all__ = [
    "AnyExpr",
    "AsyncFor",
    "Autoescape",
    "Await",
    "BinOp",
    "Block",
    "BoolOp",
    "Break",
    "Cache",
    "CallBlock",
    "Capture",
    "Compare",
    "Concat",
    "CondExpr",
    "Const",
    "Continue",
    "Data",
    "Def",
    "DefParam",
    "Dict",
    "Embed",
    "Export",
    "Expr",
    "Extends",
    "Filter",
    "FilterBlock",
    "Flush",
    "For",
    "FromImport",
    "FuncCall",
    "Getattr",
    "Getitem",
    "Globals",
    "If",
    "Import",
    "Imports",
    "Include",
    "InlinedFilter",
    "Let",
    "List",
    "LoopVar",
    "MarkSafe",
    "Match",
    "Name",
    "Node",
    "NullCoalesce",
    "OptionalGetattr",
    "OptionalGetitem",
    "Output",
    "Pipeline",
    "Range",
    "Raw",
    "Region",
    "Set",
    "Slice",
    "Slot",
    "SlotBlock",
    "Spaceless",
    "Template",
    "TemplateContext",
    "Test",
    "Trim",
    "Tuple",
    "UnaryOp",
    "While",
    "With",
    "WithConditional",
]
