assignmentExpr function

Parser assignmentExpr()

Assignment expression: identifier = expression

Implementation

Parser assignmentExpr() {
  return (ref0(identifier) &
          char('=').trim() &
          ref0(logicalExpr).trim() &
          filter().star().trim())
      .map((values) {
        final ident = values[0] as Identifier;
        final rightExpr = values[2] as ASTNode;
        final filters = values[3] as List;
        if (filters.isNotEmpty) {
          return Assignment(
            ident,
            FilteredExpression(
              Assignment(ident, rightExpr),
              filters.cast<Filter>(),
            ),
          );
        }
        return Assignment(ident, rightExpr);
      })
      .labeled('assignmentExpr');
}