38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
from typing import Any, Callable, Generic, Optional, Sequence, TypeVar, Union
|
|
from typing_extensions import Literal
|
|
|
|
from parso.utils import PythonVersionInfo
|
|
|
|
_Token = Any
|
|
_NodeT = TypeVar("_NodeT")
|
|
|
|
class Grammar(Generic[_NodeT]):
|
|
_default_normalizer_config: Optional[Any] = ...
|
|
_error_normalizer_config: Optional[Any] = None
|
|
_start_nonterminal: str = ...
|
|
_token_namespace: Optional[str] = None
|
|
def __init__(
|
|
self,
|
|
text: str,
|
|
tokenizer: Callable[[Sequence[str], int], Sequence[_Token]],
|
|
parser: Any = ...,
|
|
diff_parser: Any = ...,
|
|
) -> None: ...
|
|
def parse(
|
|
self,
|
|
code: Union[str, bytes] = ...,
|
|
error_recovery: bool = ...,
|
|
path: Optional[str] = ...,
|
|
start_symbol: Optional[str] = ...,
|
|
cache: bool = ...,
|
|
diff_cache: bool = ...,
|
|
cache_path: Optional[str] = ...,
|
|
) -> _NodeT: ...
|
|
|
|
class PythonGrammar(Grammar):
|
|
version_info: PythonVersionInfo
|
|
def __init__(self, version_info: PythonVersionInfo, bnf_text: str) -> None: ...
|
|
|
|
def load_grammar(
|
|
language: Literal["python"] = "python", version: Optional[str] = ..., path: str = ...
|
|
) -> Grammar: ...
|