filter function

Parser filter()

Implementation

Parser filter() {
  return (char('|').trim() &
          ref0(identifier).trim() &
          (char(':').trim() & ref0(expression).plusSeparated(char(',').trim()))
              .optional())
      .labeled('filter')
      .map((values) {
        final filterName = values[1] as Identifier;
        final args = values[2] != null
            ? (values[2] as List)[1].elements.cast<ASTNode>()
            : <ASTNode>[];
        return Filter(filterName, args);
      });
}