--- /dev/null
+# Stubs for lib2to3.pgen2.pgen (Python 3.6)\r
+\r
+from typing import (\r
+ Any, Dict, IO, Iterable, Iterator, List, NoReturn, Optional, Text, Tuple\r
+)\r
+\r
+from lib2to3.pgen2 import _Path, grammar\r
+from lib2to3.pgen2.tokenize import _TokenInfo\r
+\r
+class PgenGrammar(grammar.Grammar): ...\r
+\r
+class ParserGenerator:\r
+ filename: _Path\r
+ stream: IO[Text]\r
+ generator: Iterator[_TokenInfo]\r
+ first: Dict[Text, Dict[Text, int]]\r
+ def __init__(self, filename: _Path, stream: Optional[IO[Text]] = ...) -> None: ...\r
+ def make_grammar(self) -> PgenGrammar: ...\r
+ def make_first(self, c: PgenGrammar, name: Text) -> Dict[int, int]: ...\r
+ def make_label(self, c: PgenGrammar, label: Text) -> int: ...\r
+ def addfirstsets(self) -> None: ...\r
+ def calcfirst(self, name: Text) -> None: ...\r
+ def parse(self) -> Tuple[Dict[Text, List[DFAState]], Text]: ...\r
+ def make_dfa(self, start: NFAState, finish: NFAState) -> List[DFAState]: ...\r
+ def dump_nfa(self, name: Text, start: NFAState, finish: NFAState) -> List[DFAState]: ...\r
+ def dump_dfa(self, name: Text, dfa: Iterable[DFAState]) -> None: ...\r
+ def simplify_dfa(self, dfa: List[DFAState]) -> None: ...\r
+ def parse_rhs(self) -> Tuple[NFAState, NFAState]: ...\r
+ def parse_alt(self) -> Tuple[NFAState, NFAState]: ...\r
+ def parse_item(self) -> Tuple[NFAState, NFAState]: ...\r
+ def parse_atom(self) -> Tuple[NFAState, NFAState]: ...\r
+ def expect(self, type: int, value: Optional[Any] = ...) -> Text: ...\r
+ def gettoken(self) -> None: ...\r
+ def raise_error(self, msg: str, *args: Any) -> NoReturn: ...\r
+\r
+class NFAState:\r
+ arcs: List[Tuple[Optional[Text], NFAState]]\r
+ def __init__(self) -> None: ...\r
+ def addarc(self, next: NFAState, label: Optional[Text] = ...) -> None: ...\r
+\r
+class DFAState:\r
+ nfaset: Dict[NFAState, Any]\r
+ isfinal: bool\r
+ arcs: Dict[Text, DFAState]\r
+ def __init__(self, nfaset: Dict[NFAState, Any], final: NFAState) -> None: ...\r
+ def addarc(self, next: DFAState, label: Text) -> None: ...\r
+ def unifystate(self, old: DFAState, new: DFAState) -> None: ...\r
+ def __eq__(self, other: Any) -> bool: ...\r
+\r
+def generate_grammar(filename: _Path = ...) -> PgenGrammar: ...\r