variable function

Parser variable()

Implementation

Parser variable() =>
    (varStart() & ref0(expression).trim() & filter().star().trim() & varEnd())
        .map((values) {
      ASTNode expr = values[1];
      String name = '';
      if (expr is Identifier) {
        name = expr.name;
      } else if (expr is MemberAccess) {
        name = (expr.object as Identifier).name;
      }

      if ((values[2] as List).isNotEmpty) {
        return FilteredExpression(
            Variable(name, expr), (values[2] as List).cast<Filter>());
      }

      return Variable(name, expr);
    }).labeled('variable');