@@ -1,14 +1,14 @@ | |||||
from copy import deepcopy | from copy import deepcopy | ||||
from types import ModuleType | from types import ModuleType | ||||
from typing import Callable, Collection, Dict, Optional, TYPE_CHECKING | |||||
if TYPE_CHECKING: | |||||
from .lark import PostLex | |||||
from .utils import Serialize | from .utils import Serialize | ||||
from .lexer import TerminalDef, Token | from .lexer import TerminalDef, Token | ||||
###{standalone | ###{standalone | ||||
from typing import Any, Callable, Collection, Dict, Optional, TYPE_CHECKING | |||||
if TYPE_CHECKING: | |||||
from .lark import PostLex | |||||
_Callback = Callable[[Token], Token] | _Callback = Callable[[Token], Token] | ||||
@@ -1,16 +1,14 @@ | |||||
from .utils import logger, NO_VALUE | from .utils import logger, NO_VALUE | ||||
###{standalone | |||||
from collections.abc import Sequence | |||||
from typing import Dict, Iterable, Callable, Union, TypeVar, Tuple, Any, List, Set, Optional, TYPE_CHECKING | from typing import Dict, Iterable, Callable, Union, TypeVar, Tuple, Any, List, Set, Optional, TYPE_CHECKING | ||||
from collections.abc import Sequence | |||||
if TYPE_CHECKING: | if TYPE_CHECKING: | ||||
from .lexer import Token | from .lexer import Token | ||||
from .parsers.lalr_interactive_parser import InteractiveParser | from .parsers.lalr_interactive_parser import InteractiveParser | ||||
from .tree import Tree | from .tree import Tree | ||||
###{standalone | |||||
class LarkError(Exception): | class LarkError(Exception): | ||||
pass | pass | ||||
@@ -1,10 +1,9 @@ | |||||
from typing import Optional, Tuple, ClassVar | |||||
from .utils import Serialize | from .utils import Serialize | ||||
###{standalone | ###{standalone | ||||
from typing import Optional, Tuple, ClassVar | |||||
class Symbol(Serialize): | class Symbol(Serialize): | ||||
__slots__ = ('name',) | __slots__ = ('name',) | ||||
@@ -1,19 +1,18 @@ | |||||
"Provides Indentation services for languages with indentation similar to Python" | "Provides Indentation services for languages with indentation similar to Python" | ||||
from abc import ABC, abstractmethod | from abc import ABC, abstractmethod | ||||
from typing import List, Iterator | |||||
from .exceptions import LarkError | from .exceptions import LarkError | ||||
from .lark import PostLex | from .lark import PostLex | ||||
from .lexer import Token | from .lexer import Token | ||||
###{standalone | ###{standalone | ||||
from typing import List, Iterator | |||||
class DedentError(LarkError): | class DedentError(LarkError): | ||||
pass | pass | ||||
class Indenter(PostLex, ABC): | class Indenter(PostLex, ABC): | ||||
paren_level: int | paren_level: int | ||||
indent_level: List[int] | indent_level: List[int] | ||||
@@ -1,7 +1,18 @@ | |||||
from abc import ABC, abstractmethod | from abc import ABC, abstractmethod | ||||
import sys, os, pickle, hashlib | import sys, os, pickle, hashlib | ||||
import tempfile | import tempfile | ||||
from typing import ( | |||||
TypeVar, Type, List, Dict, Iterator, Callable, Union, Optional, | |||||
Tuple, Iterable, IO, Any, TYPE_CHECKING | |||||
) | |||||
if TYPE_CHECKING: | |||||
from .parsers.lalr_interactive_parser import InteractiveParser | |||||
from .visitors import Transformer | |||||
if sys.version_info >= (3, 8): | |||||
from typing import Literal | |||||
else: | |||||
from typing_extensions import Literal | |||||
from .exceptions import ConfigurationError, assert_config, UnexpectedInput | from .exceptions import ConfigurationError, assert_config, UnexpectedInput | ||||
from .utils import Serialize, SerializeMemoizer, FS, isascii, logger | from .utils import Serialize, SerializeMemoizer, FS, isascii, logger | ||||
from .load_grammar import load_grammar, FromPackageLoader, Grammar, verify_used_files, PackageResource | from .load_grammar import load_grammar, FromPackageLoader, Grammar, verify_used_files, PackageResource | ||||
@@ -21,18 +32,7 @@ except ImportError: | |||||
###{standalone | ###{standalone | ||||
from typing import ( | |||||
TypeVar, Type, List, Dict, Iterator, Callable, Union, Optional, | |||||
Tuple, Iterable, IO, Any, TYPE_CHECKING | |||||
) | |||||
if TYPE_CHECKING: | |||||
from .parsers.lalr_interactive_parser import InteractiveParser | |||||
from .visitors import Transformer | |||||
if sys.version_info >= (3, 8): | |||||
from typing import Literal | |||||
else: | |||||
from typing_extensions import Literal | |||||
class PostLex(ABC): | class PostLex(ABC): | ||||
@abstractmethod | @abstractmethod | ||||
@@ -3,6 +3,13 @@ | |||||
from abc import abstractmethod, ABC | from abc import abstractmethod, ABC | ||||
import re | import re | ||||
from contextlib import suppress | from contextlib import suppress | ||||
from typing import ( | |||||
TypeVar, Type, List, Dict, Iterator, Collection, Callable, Optional, FrozenSet, Any, | |||||
Pattern as REPattern, ClassVar, TYPE_CHECKING | |||||
) | |||||
from types import ModuleType | |||||
if TYPE_CHECKING: | |||||
from .common import LexerConf | |||||
from .utils import classify, get_regexp_width, Serialize | from .utils import classify, get_regexp_width, Serialize | ||||
from .exceptions import UnexpectedCharacters, LexError, UnexpectedToken | from .exceptions import UnexpectedCharacters, LexError, UnexpectedToken | ||||
@@ -10,14 +17,6 @@ from .exceptions import UnexpectedCharacters, LexError, UnexpectedToken | |||||
###{standalone | ###{standalone | ||||
from copy import copy | from copy import copy | ||||
from types import ModuleType | |||||
from typing import ( | |||||
TypeVar, Type, Tuple, List, Dict, Iterator, Collection, Callable, Optional, FrozenSet, Any, | |||||
Pattern as REPattern, ClassVar, TYPE_CHECKING | |||||
) | |||||
if TYPE_CHECKING: | |||||
from .common import LexerConf | |||||
class Pattern(Serialize, ABC): | class Pattern(Serialize, ABC): | ||||
@@ -25,6 +25,13 @@ | |||||
# | # | ||||
from abc import ABC, abstractmethod | from abc import ABC, abstractmethod | ||||
from collections.abc import Sequence | |||||
from types import ModuleType | |||||
from typing import ( | |||||
TypeVar, Generic, Type, Tuple, List, Dict, Iterator, Collection, Callable, Optional, FrozenSet, Any, | |||||
Union, Iterable, IO, TYPE_CHECKING, | |||||
Pattern as REPattern, ClassVar, Set, | |||||
) | |||||
###} | ###} | ||||
import sys | import sys | ||||
@@ -1,3 +1,4 @@ | |||||
try: | try: | ||||
from future_builtins import filter # type: ignore | from future_builtins import filter # type: ignore | ||||
except ImportError: | except ImportError: | ||||
@@ -6,10 +7,7 @@ except ImportError: | |||||
import sys | import sys | ||||
from copy import deepcopy | from copy import deepcopy | ||||
###{standalone | |||||
from collections import OrderedDict | |||||
from typing import List, Callable, Iterator, Union, Optional, Any, TYPE_CHECKING | |||||
from typing import List, Callable, Iterator, Union, Optional, TYPE_CHECKING | |||||
if TYPE_CHECKING: | if TYPE_CHECKING: | ||||
from .lexer import TerminalDef | from .lexer import TerminalDef | ||||
@@ -18,6 +16,9 @@ if TYPE_CHECKING: | |||||
else: | else: | ||||
from typing_extensions import Literal | from typing_extensions import Literal | ||||
###{standalone | |||||
from collections import OrderedDict | |||||
class Meta: | class Meta: | ||||
empty: bool | empty: bool | ||||
@@ -1,3 +1,4 @@ | |||||
from typing import TypeVar, Tuple, List, Callable, Generic, Type, Union, Optional | |||||
from abc import ABC | from abc import ABC | ||||
from functools import wraps | from functools import wraps | ||||
@@ -8,7 +9,6 @@ from .lexer import Token | |||||
###{standalone | ###{standalone | ||||
from inspect import getmembers, getmro | from inspect import getmembers, getmro | ||||
from typing import TypeVar, Tuple, List, Callable, Generic, Type, Union, Optional | |||||
_T = TypeVar('_T') | _T = TypeVar('_T') | ||||
_R = TypeVar('_R') | _R = TypeVar('_R') | ||||
@@ -24,7 +24,7 @@ class TestStandalone(TestCase): | |||||
standalone.gen_standalone(Lark(grammar, parser='lalr'), out=code_buf, compress=compress) | standalone.gen_standalone(Lark(grammar, parser='lalr'), out=code_buf, compress=compress) | ||||
code = code_buf.getvalue() | code = code_buf.getvalue() | ||||
context = {'__doc__': None} | |||||
context = {'__doc__': None, '__name__': 'test_standalone'} | |||||
exec(code, context) | exec(code, context) | ||||
return context | return context | ||||