docs: @Override
    public Query parse() throws SyntaxError {
      if (field == null) {
        throw new SyntaxError("no " + MTAS_CQL_QPARSER_FIELD);
      } else if (cql == null) {
        throw new SyntaxError("no " + MTAS_CQL_QPARSER_QUERY);
      } else {
        MtasSpanQuery q = null;
        MtasSpanQuery iq = null;
        if (ignoreQuery != null) {
          Reader ignoreReader = new BufferedReader(new StringReader(ignoreQuery));
          MtasCQLParser ignoreParser = new MtasCQLParser(ignoreReader);
          try {
            iq = ignoreParser.parse(field, null, null, null, null);
          } catch (mtas.parser.cql.TokenMgrError
              | mtas.parser.cql.ParseException e) {
            throw new SyntaxError(e);
          }
        }
        Reader queryReader = new BufferedReader(new StringReader(cql));
        MtasCQLParser queryParser = new MtasCQLParser(queryReader);
        try {
          q = queryParser.parse(field, defaultPrefix, variables, iq,
              maximumIgnoreLength);
        } catch (mtas.parser.cql.TokenMgrError
            | mtas.parser.cql.ParseException e) {
          throw new SyntaxError(e);
        }
        return q;
      }
    }