10
10
from pegen .tokenizer import Mark , Tokenizer , exact_token_types
11
11
12
12
T = TypeVar ("T" )
13
- P = TypeVar ("P" , bound = "Parser" )
14
13
F = TypeVar ("F" , bound = Callable [..., Any ])
15
14
16
15
@@ -21,7 +20,7 @@ def logger(method: F) -> F:
21
20
"""
22
21
method_name = method .__name__
23
22
24
- def logger_wrapper (self : P , * args : object ) -> T :
23
+ def logger_wrapper (self : "Parser" , * args : object ) -> Any :
25
24
if not self ._verbose :
26
25
return method (self , * args )
27
26
argsr = "," .join (repr (arg ) for arg in args )
@@ -41,7 +40,7 @@ def memoize(method: F) -> F:
41
40
"""Memoize a symbol method."""
42
41
method_name = method .__name__
43
42
44
- def memoize_wrapper (self : P , * args : object ) -> T :
43
+ def memoize_wrapper (self : "Parser" , * args : object ) -> Any :
45
44
mark = self ._mark ()
46
45
key = mark , method_name , args
47
46
# Fast path: cache hit, and not verbose.
@@ -74,11 +73,13 @@ def memoize_wrapper(self: P, *args: object) -> T:
74
73
return cast (F , memoize_wrapper )
75
74
76
75
77
- def memoize_left_rec (method : Callable [[P ], Optional [T ]]) -> Callable [[P ], Optional [T ]]:
76
+ def memoize_left_rec (
77
+ method : Callable [["Parser" ], Optional [T ]]
78
+ ) -> Callable [["Parser" ], Optional [T ]]:
78
79
"""Memoize a left-recursive symbol method."""
79
80
method_name = method .__name__
80
81
81
- def memoize_left_rec_wrapper (self : P ) -> Optional [T ]:
82
+ def memoize_left_rec_wrapper (self : "Parser" ) -> Optional [T ]:
82
83
mark = self ._mark ()
83
84
key = mark , method_name , ()
84
85
# Fast path: cache hit, and not verbose.
0 commit comments