diff --git a/lmformatenforcer/characterlevelparser.py b/lmformatenforcer/characterlevelparser.py index 55c03e7..1958138 100644 --- a/lmformatenforcer/characterlevelparser.py +++ b/lmformatenforcer/characterlevelparser.py @@ -151,7 +151,10 @@ def add_character(self, new_character: str) -> CharacterLevelParser: if new_character in parser.get_allowed_characters(): updated_parser = parser.add_character(new_character) next_parsers = [updated_parser] + self.parsers[idx+1:] - legal_parsers.append(SequenceParser(next_parsers)) + if len(next_parsers) == 1: + legal_parsers.append(next_parsers[0]) + else: + legal_parsers.append(SequenceParser(next_parsers)) if not parser.can_end(): break if len(legal_parsers) == 1: