@@ -17,12 +17,12 @@ class LexerConf(Serialize): | |||||
terminals: Collection[TerminalDef] | terminals: Collection[TerminalDef] | ||||
re_module: ModuleType | re_module: ModuleType | ||||
ignore: Collection[str] = () | |||||
postlex: 'Optional[PostLex]' = None | |||||
callbacks: Dict[str, _Callback] = {} | |||||
g_regex_flags: int = 0 | |||||
skip_validation: bool = False | |||||
use_bytes: bool = False | |||||
ignore: Collection[str] | |||||
postlex: 'Optional[PostLex]' | |||||
callbacks: Dict[str, _Callback] | |||||
g_regex_flags: int | |||||
skip_validation: bool | |||||
use_bytes: bool | |||||
def __init__(self, terminals: Collection[TerminalDef], re_module: ModuleType, ignore: Collection[str]=(), postlex: 'Optional[PostLex]'=None, callbacks: Optional[Dict[str, _Callback]]=None, g_regex_flags: int=0, skip_validation: bool=False, use_bytes: bool=False): | def __init__(self, terminals: Collection[TerminalDef], re_module: ModuleType, ignore: Collection[str]=(), postlex: 'Optional[PostLex]'=None, callbacks: Optional[Dict[str, _Callback]]=None, g_regex_flags: int=0, skip_validation: bool=False, use_bytes: bool=False): | ||||
self.terminals = terminals | self.terminals = terminals | ||||
@@ -3,13 +3,13 @@ from .utils import Serialize | |||||
###{standalone | ###{standalone | ||||
from typing import Optional, Tuple | |||||
from typing import Optional, Tuple, ClassVar | |||||
class Symbol(Serialize): | class Symbol(Serialize): | ||||
__slots__ = ('name',) | __slots__ = ('name',) | ||||
name: str | name: str | ||||
is_term: bool = NotImplemented | |||||
is_term: ClassVar[bool] = NotImplemented | |||||
def __init__(self, name: str) -> None: | def __init__(self, name: str) -> None: | ||||
self.name = name | self.name = name | ||||
@@ -33,7 +33,7 @@ class Symbol(Serialize): | |||||
class Terminal(Symbol): | class Terminal(Symbol): | ||||
__serialize_fields__ = 'name', 'filter_out' | __serialize_fields__ = 'name', 'filter_out' | ||||
is_term = True | |||||
is_term: ClassVar[bool] = True | |||||
def __init__(self, name, filter_out=False): | def __init__(self, name, filter_out=False): | ||||
self.name = name | self.name = name | ||||
@@ -47,7 +47,7 @@ class Terminal(Symbol): | |||||
class NonTerminal(Symbol): | class NonTerminal(Symbol): | ||||
__serialize_fields__ = 'name', | __serialize_fields__ = 'name', | ||||
is_term = False | |||||
is_term: ClassVar[bool] = False | |||||
class RuleOptions(Serialize): | class RuleOptions(Serialize): | ||||
@@ -13,7 +13,7 @@ from copy import copy | |||||
from types import ModuleType | from types import ModuleType | ||||
from typing import ( | from typing import ( | ||||
TypeVar, Type, Tuple, List, Dict, Iterator, Collection, Callable, Optional, FrozenSet, Any, | TypeVar, Type, Tuple, List, Dict, Iterator, Collection, Callable, Optional, FrozenSet, Any, | ||||
Pattern as REPattern, TYPE_CHECKING | |||||
Pattern as REPattern, ClassVar, TYPE_CHECKING | |||||
) | ) | ||||
if TYPE_CHECKING: | if TYPE_CHECKING: | ||||
@@ -23,8 +23,8 @@ class Pattern(Serialize, ABC): | |||||
value: str | value: str | ||||
flags: Collection[str] | flags: Collection[str] | ||||
raw: Optional[str] = None | |||||
type: Optional[str] = None | |||||
raw: Optional[str] | |||||
type: ClassVar[str] | |||||
def __init__(self, value: str, flags: Collection[str]=(), raw: Optional[str]=None) -> None: | def __init__(self, value: str, flags: Collection[str]=(), raw: Optional[str]=None) -> None: | ||||
self.value = value | self.value = value | ||||
@@ -73,7 +73,7 @@ class Pattern(Serialize, ABC): | |||||
class PatternStr(Pattern): | class PatternStr(Pattern): | ||||
__serialize_fields__ = 'value', 'flags' | __serialize_fields__ = 'value', 'flags' | ||||
type: str = "str" | |||||
type: ClassVar[str] = "str" | |||||
def to_regexp(self) -> str: | def to_regexp(self) -> str: | ||||
return self._get_flags(re.escape(self.value)) | return self._get_flags(re.escape(self.value)) | ||||
@@ -90,7 +90,7 @@ class PatternStr(Pattern): | |||||
class PatternRE(Pattern): | class PatternRE(Pattern): | ||||
__serialize_fields__ = 'value', 'flags', '_width' | __serialize_fields__ = 'value', 'flags', '_width' | ||||
type: str = "re" | |||||
type: ClassVar[str] = "re" | |||||
def to_regexp(self) -> str: | def to_regexp(self) -> str: | ||||
return self._get_flags(self.value) | return self._get_flags(self.value) | ||||