(self)
| 504 | return groups |
| 505 | |
| 506 | def _setup_keywords(self) -> None: |
| 507 | n_keyword_lists = ( |
| 508 | len(max(self.keywords.keys(), key=len)) + 1 if len(self.keywords) > 0 else 0 |
| 509 | ) |
| 510 | self.print(f"static const int n_keyword_lists = {n_keyword_lists};") |
| 511 | groups = self._group_keywords_by_length() |
| 512 | self.print("static KeywordToken *reserved_keywords[] = {") |
| 513 | with self.indent(): |
| 514 | num_groups = max(groups) + 1 if groups else 1 |
| 515 | for keywords_length in range(num_groups): |
| 516 | if keywords_length not in groups.keys(): |
| 517 | self.print("(KeywordToken[]) {{NULL, -1}},") |
| 518 | else: |
| 519 | self.print("(KeywordToken[]) {") |
| 520 | with self.indent(): |
| 521 | for keyword_str, keyword_type in groups[keywords_length]: |
| 522 | self.print(f'{{"{keyword_str}", {keyword_type}}},') |
| 523 | self.print("{NULL, -1},") |
| 524 | self.print("},") |
| 525 | self.print("};") |
| 526 | |
| 527 | def _setup_soft_keywords(self) -> None: |
| 528 | soft_keywords = sorted(self.soft_keywords) |
no test coverage detected