code: private Expression parseRangeExpression() {
      Expression ge = new GreaterOrEqual(parseVersion());
      consumeNextToken(HYPHEN);
      Expression le = new LessOrEqual(parseVersion());
      return new And(ge, le);
    }
docs: Parses the {@literal <range-expr>} non-terminal.
  
  <pre>
  {@literal
  <range-expr> ::= <version> "-" <version>
  }
  </pre>
  
  @return the expression AST