Alternatively, you can run 'make regen-keyword'.
"""
-__all__ = ["iskeyword", "kwlist"]
+__all__ = ["iskeyword", "issoftkeyword", "kwlist", "softkwlist"]
kwlist = [
'False',
'yield'
]
+softkwlist = [
+
+]
+
iskeyword = frozenset(kwlist).__contains__
+issoftkeyword = frozenset(softkwlist).__contains__
self.non_exact_tokens = non_exact_tokens
self.cache: Dict[Any, FunctionCall] = {}
self.keyword_cache: Dict[str, int] = {}
+ self.soft_keywords: Set[str] = set()
def keyword_helper(self, keyword: str) -> FunctionCall:
if keyword not in self.keyword_cache:
)
def soft_keyword_helper(self, value: str) -> FunctionCall:
+ self.soft_keywords.add(value.replace('"', ""))
return FunctionCall(
assigned_variable="_keyword",
function="_PyPegen_expect_soft_keyword",
Alternatively, you can run 'make regen-keyword'.
"""
-__all__ = ["iskeyword", "kwlist"]
+__all__ = ["iskeyword", "issoftkeyword", "kwlist", "softkwlist"]
kwlist = [
- {keywords}
+{keywords}
+]
+
+softkwlist = [
+{soft_keywords}
]
iskeyword = frozenset(kwlist).__contains__
+issoftkeyword = frozenset(softkwlist).__contains__
'''.lstrip()
EXTRA_KEYWORDS = ["async", "await"]
with args.keyword_file as thefile:
all_keywords = sorted(list(gen.callmakervisitor.keyword_cache.keys()) + EXTRA_KEYWORDS)
+ all_soft_keywords = sorted(gen.callmakervisitor.soft_keywords)
- keywords = ",\n ".join(map(repr, all_keywords))
- thefile.write(TEMPLATE.format(keywords=keywords))
+ keywords = " " + ",\n ".join(map(repr, all_keywords))
+ soft_keywords = " " + ",\n ".join(map(repr, all_soft_keywords))
+ thefile.write(TEMPLATE.format(keywords=keywords, soft_keywords=soft_keywords))
if __name__ == "__main__":