rfc5646language top-level property

Rule rfc5646language
final

Implementation

final rfc5646language = rule(
  'language',
  alternatives([
    concatenation([
      variableRepetition(alpha, min: 2, max: 3),
      negativeLookahead(alphanum),
      optionalSequence([
        concatenation([literal('-'), rfc5646extlang]),
      ]),
    ]),
    concatenation([repetition(alpha, 4), negativeLookahead(alphanum)]),
    concatenation([
      variableRepetition(alpha, min: 5, max: 8),
      negativeLookahead(alphanum),
    ]),
  ]),
);