code: public ExpressionIterator parse(@NonNull Resource resource) throws ParseException {
        try {
           return new ExpressionIterator(grammar, lexer.lex(resource));
        } catch (IOException e) {
           throw new ParseException(e);
        }
     }
docs: <p>Parses the given resource returning an {@link ExpressionIterator} to iterate over the parsed expressions. Note
  the parse is lazy and is done during the calls to {@link ExpressionIterator#next()}.</P>
  
  @param resource the resource to parse
  @return the expression iterator that lazily parses the resource
  @throws ParseException tSomething went wrong parsing