1 # Stubs for lib2to3.pytree (Python 3.6)
\r
4 from typing import Any, Callable, Dict, Iterator, List, Optional, Text, Tuple, TypeVar, Union
\r
6 from lib2to3.pgen2.grammar import Grammar
\r
9 _NL = Union[Node, Leaf]
\r
10 _Context = Tuple[Text, int, int]
\r
11 _Results = Dict[Text, _NL]
\r
12 _RawNode = Tuple[int, Text, _Context, Optional[List[_NL]]]
\r
13 _Convert = Callable[[Grammar, _RawNode], Any]
\r
17 def type_repr(type_num: int) -> Text: ...
\r
21 parent: Optional[Node]
\r
26 def __eq__(self, other: Any) -> bool: ...
\r
27 def _eq(self: _P, other: _P) -> bool: ...
\r
28 def clone(self: _P) -> _P: ...
\r
29 def post_order(self) -> Iterator[_NL]: ...
\r
30 def pre_order(self) -> Iterator[_NL]: ...
\r
31 def replace(self, new: Union[_NL, List[_NL]]) -> None: ...
\r
32 def get_lineno(self) -> int: ...
\r
33 def changed(self) -> None: ...
\r
34 def remove(self) -> Optional[int]: ...
\r
36 def next_sibling(self) -> Optional[_NL]: ...
\r
38 def prev_sibling(self) -> Optional[_NL]: ...
\r
39 def leaves(self) -> Iterator[Leaf]: ...
\r
40 def depth(self) -> int: ...
\r
41 def get_suffix(self) -> Text: ...
\r
42 if sys.version_info < (3,):
\r
43 def get_prefix(self) -> Text: ...
\r
44 def set_prefix(self, prefix: Text) -> None: ...
\r
47 fixers_applied: List[Any]
\r
48 def __init__(self, type: int, children: List[_NL], context: Optional[Any] = ..., prefix: Optional[Text] = ..., fixers_applied: Optional[List[Any]] = ...) -> None: ...
\r
49 def set_child(self, i: int, child: _NL) -> None: ...
\r
50 def insert_child(self, i: int, child: _NL) -> None: ...
\r
51 def append_child(self, child: _NL) -> None: ...
\r
57 fixers_applied: List[Any]
\r
58 def __init__(self, type: int, value: Text, context: Optional[_Context] = ..., prefix: Optional[Text] = ..., fixers_applied: List[Any] = ...) -> None: ...
\r
60 def convert(gr: Grammar, raw_node: _RawNode) -> _NL: ...
\r
64 content: Optional[Text]
\r
65 name: Optional[Text]
\r
66 def optimize(self) -> BasePattern: ... # sic, subclasses are free to optimize themselves into different patterns
\r
67 def match(self, node: _NL, results: Optional[_Results] = ...) -> bool: ...
\r
68 def match_seq(self, nodes: List[_NL], results: Optional[_Results] = ...) -> bool: ...
\r
69 def generate_matches(self, nodes: List[_NL]) -> Iterator[Tuple[int, _Results]]: ...
\r
71 class LeafPattern(BasePattern):
\r
72 def __init__(self, type: Optional[int] = ..., content: Optional[Text] = ..., name: Optional[Text] = ...) -> None: ...
\r
74 class NodePattern(BasePattern):
\r
76 def __init__(self, type: Optional[int] = ..., content: Optional[Text] = ..., name: Optional[Text] = ...) -> None: ...
\r
78 class WildcardPattern(BasePattern):
\r
81 def __init__(self, content: Optional[Text] = ..., min: int = ..., max: int = ..., name: Optional[Text] = ...) -> None: ...
\r
83 class NegatedPattern(BasePattern):
\r
84 def __init__(self, content: Optional[Text] = ...) -> None: ...
\r
86 def generate_matches(patterns: List[BasePattern], nodes: List[_NL]) -> Iterator[Tuple[int, _Results]]: ...
\r