diff options
Diffstat (limited to 'yapymake/makefile/token.py')
-rw-r--r-- | yapymake/makefile/token.py | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/yapymake/makefile/token.py b/yapymake/makefile/token.py index bd673f7..a0c3f8f 100644 --- a/yapymake/makefile/token.py +++ b/yapymake/makefile/token.py @@ -17,6 +17,10 @@ class TokenString(Iterable['Token']): my_tokens = [] self._tokens = my_tokens + @staticmethod + def text(body: str) -> 'TokenString': + return TokenString([TextToken(body)]) + def __eq__(self, other) -> bool: return isinstance(other, TokenString) and self._tokens == other._tokens @@ -91,7 +95,7 @@ def single_token(until: Optional[str] = None) -> Parser[Token]: text = text_until(until) return alt(text, macro_expansion) -empty_tokens = map_parser(tag(''), lambda _: TokenString([TextToken('')])) +empty_tokens = map_parser(tag(''), lambda _: TokenString.text('')) def tokens(until: Optional[str] = None) -> Parser[TokenString]: return alt(map_parser(many1(single_token(until)), TokenString), empty_tokens) |