from __future__ import annotations

from typing import Any

from paddle.fluid.dygraph.dygraph_to_static.utils import BaseNodeVisitor
from paddle.utils import gast

class ForToWhileTransformer(gast.NodeTransformer):
    parent_node: Any = ...
    loop_node: Any = ...
    condition_node: Any = ...
    def __init__(self, parent_node: Any, loop_node: Any, condition_node: Any) -> None: ...
    def transform(self): ...
    def get_for_stmt_nodes(self, node: Any): ...

class BreakContinueTransformer(BaseNodeVisitor):
    wrapper_root: Any = ...
    root: Any = ...
    def __init__(self, wrapper_root: Any) -> None: ...
    def transform(self) -> None: ...
    def visit_Break(self, node: Any) -> None: ...
    def visit_Continue(self, node: Any) -> None: ...

class BreakTransformOptimizer(BaseNodeVisitor):
    wrapper_root: Any = ...
    root: Any = ...
    def __init__(self, wrapper_root: Any) -> None: ...
    def transform(self) -> None: ...
    def visit_Break(self, node: Any) -> None: ...
