1# Stubs for lib2to3.pgen2.pgen (Python 3.6)
2
3from typing import (
4    Any, Dict, IO, Iterable, Iterator, List, NoReturn, Optional, Text, Tuple
5)
6
7from lib2to3.pgen2 import _Path, grammar
8from lib2to3.pgen2.tokenize import _TokenInfo
9
10class PgenGrammar(grammar.Grammar): ...
11
12class ParserGenerator:
13    filename: _Path
14    stream: IO[Text]
15    generator: Iterator[_TokenInfo]
16    first: Dict[Text, Dict[Text, int]]
17    def __init__(self, filename: _Path, stream: Optional[IO[Text]] = ...) -> None: ...
18    def make_grammar(self) -> PgenGrammar: ...
19    def make_first(self, c: PgenGrammar, name: Text) -> Dict[int, int]: ...
20    def make_label(self, c: PgenGrammar, label: Text) -> int: ...
21    def addfirstsets(self) -> None: ...
22    def calcfirst(self, name: Text) -> None: ...
23    def parse(self) -> Tuple[Dict[Text, List[DFAState]], Text]: ...
24    def make_dfa(self, start: NFAState, finish: NFAState) -> List[DFAState]: ...
25    def dump_nfa(self, name: Text, start: NFAState, finish: NFAState) -> List[DFAState]: ...
26    def dump_dfa(self, name: Text, dfa: Iterable[DFAState]) -> None: ...
27    def simplify_dfa(self, dfa: List[DFAState]) -> None: ...
28    def parse_rhs(self) -> Tuple[NFAState, NFAState]: ...
29    def parse_alt(self) -> Tuple[NFAState, NFAState]: ...
30    def parse_item(self) -> Tuple[NFAState, NFAState]: ...
31    def parse_atom(self) -> Tuple[NFAState, NFAState]: ...
32    def expect(self, type: int, value: Optional[Any] = ...) -> Text: ...
33    def gettoken(self) -> None: ...
34    def raise_error(self, msg: str, *args: Any) -> NoReturn: ...
35
36class NFAState:
37    arcs: List[Tuple[Optional[Text], NFAState]]
38    def __init__(self) -> None: ...
39    def addarc(self, next: NFAState, label: Optional[Text] = ...) -> None: ...
40
41class DFAState:
42    nfaset: Dict[NFAState, Any]
43    isfinal: bool
44    arcs: Dict[Text, DFAState]
45    def __init__(self, nfaset: Dict[NFAState, Any], final: NFAState) -> None: ...
46    def addarc(self, next: DFAState, label: Text) -> None: ...
47    def unifystate(self, old: DFAState, new: DFAState) -> None: ...
48    def __eq__(self, other: Any) -> bool: ...
49
50def generate_grammar(filename: _Path = ...) -> PgenGrammar: ...
51