code: private String alphanumericIdentifier() {
      StringBuilder sb = new StringBuilder();
      do {
        sb.append(consumeNextCharacter(CharType.DIGIT, CharType.LETTER, CharType.HYPHEN));
      } while (chars.positiveLookahead(CharType.DIGIT, CharType.LETTER, CharType.HYPHEN));
      return sb.toString();
    }
docs: Parses the {@literal <alphanumeric identifier>} non-terminal.
  
  <pre>
  {@literal
  <alphanumeric identifier> ::= <non-digit>
  | <non-digit> <identifier characters>
  | <identifier characters> <non-digit>
  | <identifier characters> <non-digit> <identifier characters>
  }
  </pre>
  
  @return a string representing the alphanumeric identifier