def identifier(self, text):
    """identifier = alpha_character | "_" . {alpha_character | "_" | digit} ;"""
    self._attempting(text)
    return concatenation([
      alternation([
        self.alpha_character,
        "_"
      ]),
      zero_or_more(
        alternation([
          self.alpha_character,
          "_",
          self.digit
        ])
      )
    ], ignore_whitespace=False)(text).compressed(TokenType.identifier)
identifier = alpha_character | "_" . {alpha_character | "_" | digit} ;