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);
  });
}